Скажем, у меня есть файл в моем репозитории git foo
.
Предположим, что он был удален с rm
(не git rm
). Тогда git status покажет:
Changes not staged for commit:
deleted: foo
Как подготовить удаление этого файла?
Если я попробую:
git add foo
Это говорит:
'foo' did not match any files.
Ответы:
Начиная с Git 2.0.0,
git add
также будет происходить удаление файлов.Git 2.0.0 Docs - git-add
источник
Используйте
git rm foo
для размещения файла для удаления. (Это также приведет к удалению файла из файловой системы, если он не был ранее удален. Конечно, его можно восстановить из git, поскольку он был ранее зарегистрирован.)Чтобы подготовить файл для удаления, не удаляя его из файловой системы, используйте
git rm --cached foo
источник
--cache
флаг, чтобы удалить файл только из репозитория, и оставить нетронутым в файловой системе.git status | grep 'deleted:' | cut -d':' -f2 | xargs -t -I {} git add -u "{}"
. Другие ответы, кажется, показывают, как правильно организовать удаление файлов (но не как подготовить уже удаленные файлы). пс. командаxargs
based работает для меня в Ubuntu 12.04, однако, когда я делаюgit add -u deleted_file.txt
это вручную, она не работает. Мой мерзавец 1.7.9.5git rm
удовольствием создаст файл для удаления, даже если он уже был удален из файловой системы. И, как указывает комментарий ОП к другому ответу, они хотели подготовить один конкретный файл, который уже был удален.git rm
не ставит уже удаленные файлы Он выдает эту ошибку:fatal: pathspec '~.SLDASM' did not match any files
. Вот экраны с доказательством: i.imgur.com/cKNKGGe.png i.imgur.com/1p9JdWF.png . Первый скриншот ясно показывает, что 2 файла удалены, а не подготовлены, второй скриншот показывает, что когда я печатаюgit rm "~$Box.SLDASM"
, он выдает эту ошибку.Даже если это правильно использовать
git rm [FILE]
, в качестве альтернативы, вы могли бы сделатьgit add -u
.Согласно
git-add
документации:После чего индекс будет обновлен и файлы будут правильно размещены.
источник
git add -A .
добавит все изменения, я специально хотел, чтобы один этап удалил файл.git add -u FolderWithDeletedFiles/
и он сделал то, что я хочу, спасибоДля проверки всех удаленных вручную файлов вы можете использовать:
Чтобы добавить псевдоним к этой команде как
git rm-deleted
, выполните:источник
unknown option `deleted)
for /F %I in ('git ls-files --deleted') do git add -u %I
Добавить все готовые удаленные файлы
спасибо проверить, чтобы убедиться
тебе должно быть хорошо идти
источник
rm <file>
, а скорееgit rm <file>
git version 2.15.2 (Apple Git-101.1)
.Ты можешь использовать
git rm -r --cached -- "path/to/directory"
подготовить удаленный каталог.
источник
Вы можете использовать эту команду
источник
для тех, кто использует git 2.x + в powershell:
источник