22

我正在学习 Git,无法理解在发出“git rm”命令时在什么情况下使用 -f 标志。请解释一个需要 rm -f 而不是 rm 的场景?

4

3 回答 3

22

解释:

如果文件与您上次签出的提交不是最新的-f,则用于删除文件。这是为了防止您删除已更改但尚未签入的文件。


例子:

您签出包含文件sample.txt的提交0a12d4。在更改任何文件之前,您可以删除带有.txt 的sample.txt但是,一旦您对sample.txt进行了更改,您就需要使用来删除该文件git rm sample.txtgit rm -f sample.txt

于 2011-11-15T03:05:39.960 回答
3

如果您尝试对git rm具有未暂存更改的文件,如果您不提供-f标志,它将失败:

$ git rm a.txt
error: 'a.txt' has local modifications
(use --cached to keep the file, or -f to force removal)
于 2011-11-15T03:06:19.823 回答
2

如果你编辑一个文件,然后意识到你想删除它。

$ ls
函数c
$ vim 函数.c
...编辑文件...

现在想起来,我真的想删除它.​​.....

$ git rm func.c
错误:“func.c”有本地修改
(使用 --cached 保留文件,或 -f 强制删除)
$ git rm -f func.c
于 2011-11-15T03:07:14.420 回答