git checkout重载

A. *_*ada 0 git git-checkout

TL; DR如果分支具有相同的名称,我无法使用git checkout恢复文件.


当发现一个有趣的问题时,我正在我的GIT存储库上工作.我们有一个名为"build-upload"的分支,我们正在创建一个新的"上传"功能.我们还有一个名为"bin/build-upload"的文件,它是一个脚本,而不是构建项目并将其上传到生产环境.

问题是我在"bin /"目录并修改了"build-upload"文件,我想还原它.所以我打字了

git checkout build-upload
Run Code Online (Sandbox Code Playgroud)

结果是

amatiasq:~/repo/bin$ git checkout build-upload
M   bin/build-upload
Switched to branch 'build-upload'
Run Code Online (Sandbox Code Playgroud)

我没有注意到结果,并继续工作,没有意识到我在另一个分支.幸运的是,在我提交新的更改之前,我看到"bin/build-upload"被修改了,这导致我发现我切换了分支.

问题是.有没有办法防止这种歧义?如果我要切换分支或还原文件,我怎么能告诉git"checkout"?

twa*_*erg 7

根据git help checkout,--命令行上的所有内容都将被解释为路径,而不是分支或标记.所以,这可能应该做你需要的:

git checkout -- build-upload
Run Code Online (Sandbox Code Playgroud)