Wstawianie usuniętych plików

Powiedzmy, że mam w repozytorium git plik o nazwie foo.

Załóżmy, że został usunięty za pomocą rm (nie git rm). Następnie Git status pokaże:

Changes not staged for commit:

    deleted: foo

Jak mogę ustawić usunięcie tego pojedynczego pliku?

Jeśli spróbuję:

git add foo

Jest napisane:

'foo' did not match any files.
Author: Nick Volynkin, 2012-09-11

6 answers

Użyj git rm foo, aby przygotować plik do usunięcia. (Spowoduje to również usunięcie pliku z systemu plików, jeśli nie został on wcześniej usunięty. Można go oczywiście przywrócić z Gita, ponieważ był wcześniej sprawdzany.)

Aby ustawić plik do usunięcia bez usuwania go z systemu plików, użyj git rm --cached foo

 415
Author: Wooble,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-04-22 20:04:36

Możesz to zrobić git add -u.

To pomoże, jeśli chcesz usunąć wiele plików, bez robienia git rm dla każdego z nich.

 335
Author: Sailesh,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-09-11 16:36:45

Aby ustawić wszystkie ręcznie usunięte pliki, możesz użyć:

git rm $(git ls-files --deleted)

Aby dodać alias do tego polecenia jako git rm-deleted, Uruchom:

git config --global alias.rm-deleted '!git rm $(git ls-files --deleted)'
 106
Author: Ian Mackinnon,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-02-09 10:40:22

Aby dodać wszystkie gotowe usunięte pliki

git status -s | grep -E '^ D' | cut -d ' ' -f3 | xargs git add --all

Thank check to make sure

git status

You should be good to go

 26
Author: chet corey,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-12-09 15:28:00

Od wersji Git 2.0.0, git add również spowoduje usunięcie plików.

Git 2.0.0 Docs-git-add

...

Pliki z których można dodawać zawartość. Fileglobes (np. *.c) można podać, aby dodać wszystkie > pasujące pliki. Można również podać wiodącą nazwę katalogu (np. dir, aby dodać dir / file1 i dir/file2), aby zaktualizować indeks, aby pasował do bieżącego stanu katalogu jako całości (np. podanie dir spowoduje zapis nie tylko Pliku zmodyfikowanego w drzewie roboczym dir/file1, plik dir / file2 dodany do drzewa roboczego, ale także plik dir/file3 usunięty z drzewa roboczego. zauważ, że starsze wersje Git używały do ignorowania usuniętych plików; użyj opcji --no-all, jeśli chcesz dodać zmodyfikowane lub nowe pliki, ale zignorować usunięte.

 7
Author: peflorencio,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-27 21:05:33

Możesz użyć

git rm -r --cached -- "path/to/directory"

Aby utworzyć usunięty katalog.

 6
Author: GameScripting,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-16 14:34:20