当我第一次开始使用Git时,我发现checkout
命令很混乱.但是,当我适应Git的版本控制模型时,它开始变得有意义了.现在我不得不向同事们教Git,我想checkout
简单解释一下.我以为我有一个简单的解释(来自文档):
签出一个或多个工作树的路径
这似乎统一了一些你可以用结帐做的事情,这对于Git的新手来说似乎是一组多样化的操作:
git checkout . git checkout HEAD . git checkout HEAD~2 git checkout feature/update-readme README.md
...除了最后一个,因为这不只是更新工作目录,它会分段文件.
我如何理解为什么或何时结账会导致某些事情上演而不是仅仅复制到工作目录中?
git checkout
实际上总是将所有检出的文件分段.但是如果您没有指定路径(如前三个示例中所示),您的HEAD也将设置为您签出的提交,因此您的阶段与您的HEAD相同,即没有提交更改.