我正在阅读书籍Git Pro
,并说:
要从Git中删除文件,您必须将其从跟踪的文件中删除(更准确地说,将其从暂存区域中删除),然后提交。 git rm
命令执行此操作,并删除该文件
从您的工作目录中,这样您下次就不会将其视为未跟踪的文件。
以及下一段谈到git rm -f
:
如果您修改了文件并将其添加到暂存区域,则必须使用-f
选项强制删除该文件。这是一种安全
功能,以防止意外删除尚未记录在快照中但无法从Git恢复的数据。
我不明白的是,在这两个段落中,他们都在谈论从同一区域删除文件(暂存我想,git
在git add .
之后添加屏幕截图1}})。
如果两个命令都用于从暂存区域中删除文件,那有什么区别?
谢谢
答案 0 :(得分:1)
git rm -f
(或--force
)会覆盖最新的检查。如果未提供-f
,则git rm
将拒绝删除自上次提交以来修改过的文件,但git rm -f
将继续删除。
$ git init
Initialized empty Git repository in /home/ibug/test/.git/
$ touch foo
$ git add foo
$ git rm foo
error: the following file has changes staged in the index:
foo
(use --cached to keep the file, or -f to force removal)
$ git commit --message "Test foo"
[master (root-commit) 1234567] Test foo
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 foo
$ git rm foo
rm 'foo'
$