【发布时间】:2015-05-04 10:12:42
【问题描述】:
当我第一次开始使用 Git 时,我发现 checkout 命令相当混乱。然而,当我适应了 Git 的版本控制模型时,它开始变得有意义了。现在我不得不向我的同事教 Git,我试图简单地解释 checkout。我以为我有一个简单的解释(来自documentation):
检查工作树的分支或路径
这似乎统一了您可以通过结帐执行的一些操作,这些操作对于 Git 新手来说似乎是一组多样化的操作:
git checkout .
git checkout HEAD .
git checkout HEAD~2
git checkout feature/update-readme README.md
...除了最后一个,因为那不只是更新工作目录,而是暂存文件。
我如何理解为什么或何时结帐会导致某些内容暂存而不是仅仅复制到工作目录中?
【问题讨论】:
-
你的最后一行相当于
git checkout feature/update-readme -- README.md。 -
我只提到这一点是因为
--将commitRef 与文件名/路径分开更明确,所以我发现这样更清楚。 (事实上,您的第二次结帐也可能有一个--。) -
@LưuVĩnhPhúc 我的问题早于那个问题。它是这个的副本,而不是相反。
-
@KeithPinson 一般规则是keep the one with the better set of answers,而不是旧的
标签: git git-checkout working-directory git-index git-stage