Когда используется git rm -f? - PullRequest
16 голосов
/ 15 ноября 2011

Я изучаю Git и не могу понять, при каких условиях используется флаг -f при выполнении команды "git rm".Пожалуйста, объясните сценарий, где вместо rm потребуется rm -f?

Ответы [ 3 ]

14 голосов
/ 15 ноября 2011

Пояснение:

-f используется для удаления файла, если файл не обновлен до последнего извлеченного коммита. Он запрещает удаление файла, в который вы внесли изменения, но еще не зарегистрировали его.


Пример:

Вы проверяете коммит 0a12d4 , содержащий файл sample.txt . Прежде чем изменять какие-либо файлы, вы можете удалить sample.txt с помощью git rm sample.txt. Однако после внесения изменений в sample.txt вам потребуется использовать git rm -f sample.txt для удаления файла

3 голосов
/ 15 ноября 2011

Если вы попытаетесь git rm файл, который не изменен, он потерпит неудачу, если вы не укажете флаг -f:

$ git rm a.txt
error: 'a.txt' has local modifications
(use --cached to keep the file, or -f to force removal)
2 голосов
/ 15 ноября 2011

Если вы редактируете файл, а потом понимаете, что хотите удалить его.

$ ls
func.c
$ vim func.c
...edit the file...

Теперь, когда я думаю об этом, я действительно хочу удалить его ...

$ git rm func.c
error: 'func.c' has local modifications
(use --cached to keep the file, or -f to force removal)
$ git rm -f func.c
...