我看过这样的命令:
git reset e542 -- readme.txt
我理解这个命令将来自提交 e542 的文件 readme.txt 的内容放入索引中。但是,--
选项是做什么的?
git reset 手册将其列为前两种形式的可选项,但我找不到它的含义。
git reset [-q] [<commit>] [--] <paths>…
git reset (--patch | -p) [<commit>] [--] [<paths>…]
--
将分支名称与文件名称分开,以防止名称冲突(如果有相同名称的分支和文件)。如果没有歧义,则不需要使用--
。
正如Jonas Wielicki所提到的那样,这允许使用以-
开头的文件名;否则,这些文件名会被解释为命令行选项。
我认为它只是将提交(可选参数)与路径列表分开。如果没有这个分隔符,就没有确定的方法来区分第一个参数是路径还是提交。
.git
下的某些目录中找到)。因此,如果第一个参数是提交,就有一种方法可以将其与路径区分开来,但仅当它是明确的时候。 - Jonas Schäfer
--
checkout 和 reset 的重要性不如双破折号。但是这里也有答案,可以参考 https://dev59.com/P3E85IYBdhLWcg3w9odJ @cup - random