git two破折号表示没有更多选项

Jas*_*son 14 git version-control github

我正在学习try git by code school,并且单元1.17撤消它使用命令行

git checkout -- octocat.txt
Run Code Online (Sandbox Code Playgroud)

然后octocat.txt是一个文件,它解释了两条虚线

它只是承诺在' - '之后没有更多选项的命令行.这样,如果你碰巧有一个名为octocat.txt的分支,它仍然会恢复文件,而不是切换到同名的分支.

但我无法理解的是,没有选择意味着什么呢?并且由于之后没有选项,为什么它可以通过文件与分支区分?

mvp*_*mvp 22

--表示停止处理选项,即使某些内容看起来像一个选项,例如--help,它应该被视为通常的参数,而不是文件名.

使用这种语法,您实际上可以添加或删除名为say的文件,--help否则这是不可能的.

在git语法中,--通常也用于指定受影响的文件.例如,git checkout something可能意味着checkout分支命名something或文件调用something.如果使用git checkout -- something,则始终表示文件,而不是分支.