我一直用git checkout -- .清除我的工作目录。--需要避免 git 认为你正在传递参数(或其他东西)

现在一位同事告诉我我可以放弃--,事实上,快速测试的结果完全相同。

这两个命令有什么区别吗?

PS:在这里问是因为git checkout -- .git checkout .谷歌搜索有点难…

答案

我似乎记得--是告诉 Git 处理接下来的内容的一种方法checkout作为文件而不是分支。stuff

git checkout stuff

因为不清楚您是要求签出文件还是分支。--你明确告诉 Git 按该名称/路径签出文件。stuff:

git checkout stuff       # checkout the branch stuff
git checkout -- stuff    # checkout the file stuff

注意git checkout <name>实际上是针对分支的,但是 Git 语法很宽松,如果 Git 找不到分支,那么它会查找文件。

密切相关:当存在同名文件时 Git 更改分支

来自: stackoverflow.com