git checkout vs git checkout HEAD vs git checkout <current branch =“”> vs git checkout - <working dir =“”> </working> </current>

时间:2013-03-19 19:22:24

标签: git

我正在尝试确定以下4个命令之间存在的差异。

假设当前分支是master,当前目录是“工作目录”,即.git所在的目录。

git checkout

git checkout HEAD

git checkout master

git checkout -- .

据我所知,前两个命令完全等效,并且基本上是无操作的(除了它们都可能产生一些输出的事实);第三个几乎与前两个相同,除了它将产生,除了前者产生的任何其他输出,行Already on 'master'.最后一个命令,与所有其他命令相反,将丢弃所有未分期的变化。

我错过了什么吗?

2 个答案:

答案 0 :(得分:0)

根据TFMgit checkout命令有四种形式。您的前两个示例是其中之一,另外两个示例是另外两个示例。

所以为了回答你的问题,你错过了git checkout的最后一种形式:

git checkout -b <new branch name> <start point>

答案 1 :(得分:0)

前3个是相同的(并且不是 no-ops,如果你确实改变了一些文件,它们将被master中的那些文件替换)。第4个检出'。'中的文件,即当前目录。