Powiedzmy, że mam plik w moim repozytorium git o nazwie foo
.
Załóżmy, że został usunięty za pomocą rm
(nie git rm
). Następnie status git pokaże:
Changes not staged for commit:
deleted: foo
Jak przeprowadzić etap usuwania tego pojedynczego pliku?
Jeśli spróbuję:
git add foo
To mówi:
'foo' did not match any files.
Odpowiedzi:
Począwszy od Gita 2.0.0,
git add
będzie także przeprowadzać usuwanie plików.Dokumenty Git 2.0.0 - git-add
źródło
Służy
git rm foo
do ustawiania pliku do usunięcia. (Spowoduje to również usunięcie pliku z systemu plików, jeśli nie został wcześniej usunięty. Można go oczywiście przywrócić z git, ponieważ był wcześniej zalogowany.)Aby przygotować plik do usunięcia bez usuwania go z systemu plików, użyj
git rm --cached foo
źródło
--cache
flagę, aby usunąć plik tylko z repozytorium i pozostawić nietykalny w systemie plików.git status | grep 'deleted:' | cut -d':' -f2 | xargs -t -I {} git add -u "{}"
. Wydaje się, że inne odpowiedzi pokazują, jak poprawnie usuwać pliki (ale nie jak usuwać już usunięte pliki). ps.xargs
polecenia oparte działa na mnie na Ubuntu 12.04, jednak kiedy ręcznie zrobićgit add -u deleted_file.txt
doens't pracy. Mój git to 1.7.9.5git rm
z przyjemnością przygotuje plik do usunięcia, nawet jeśli został już usunięty z systemu plików. I jak zauważa komentarz OP do innej odpowiedzi, chcieli stworzyć jeden konkretny plik, który został już usunięty.git rm
nie wystawia już usuniętych plików. Zgłasza ten błąd:fatal: pathspec '~.SLDASM' did not match any files
. Oto ekrany z dowodem: i.imgur.com/cKNKGGe.png i.imgur.com/1p9JdWF.png . Pierwszy zrzut ekranu wyraźnie pokazuje, że 2 pliki są usuwane i nie są przenoszone, drugi zrzut ekranu pokazuje, że kiedy piszęgit rm "~$Box.SLDASM"
, generuje ten błąd.Mimo że jest poprawny w użyciu
git rm [FILE]
, możesz to zrobićgit add -u
.Zgodnie z
git-add
dokumentacją:Po czym indeks zostanie odświeżony, a pliki będą odpowiednio ustawione.
źródło
git add -A .
, dodam wszystkie zmiany, szczególnie chciałem wprowadzić jeden usunięty plik.git add -u FolderWithDeletedFiles/
i zrobiłem, co chcę, dziękiAby ustawić wszystkie ręcznie usunięte pliki, możesz użyć:
Aby dodać alias do tego polecenia jako
git rm-deleted
, uruchom:źródło
unknown option `deleted)
for /F %I in ('git ls-files --deleted') do git add -u %I
aby dodać wszystkie gotowe usunięte pliki
dziękuję sprawdź, aby się upewnić
Powinieneś być gotowy do drogi
źródło
rm <file>
, ale raczejgit rm <file>
git version 2.15.2 (Apple Git-101.1)
.Możesz użyć
git rm -r --cached -- "path/to/directory"
na scenie usuniętego katalogu.
źródło
Możesz użyć tego polecenia
źródło
dla osób używających git 2.x + w PowerShell:
źródło