要删除文件,可以:
git rm path/to/file
当我想在git中取消暂存已删除的文件时,我必须:
git reset -- path/to/file
git checkout -- path/to/file
我不太明白为什么--
是必要的以及命令与以下内容的区别:
git reset path/to/file
git checkout path/to/file
其他后者不会起作用。
--
背后的基本原理是什么?
致命错误说明:
Use '--' to separate paths from revisions
但我仍然不太了解其中的差异。
答案 0 :(得分:5)
git command some-path
和git command -- some-path
在所有情况下都是等效的,除了,some-path
可以解释为提交引用。最常见的情况是与文件同名的分支。
例如,假设您的存储库的根目录中有一个名为master
的文件。然后git checkout master
将结帐分支 master
。但git checkout -- master
会查看当前HEAD的文件 master
,并将该master
文件替换为该修订版本。
答案 1 :(得分:0)
正如错误所述,不可能知道path/to/file
是文件路径还是树形,因此它总是被解析为树形,而--
之后的参数被解析被解析为路径。