2013-03-19 123 views
1

我试图确定以下4个命令之间存在的差异。git checkout vs git checkout HEAD vs git checkout <CURRENT BRANCH> vs git checkout - <WORKING DIR>

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

git checkout 

git checkout HEAD 

git checkout master 

git checkout -- . 

据我所知,前两个命令是完全等价,并且基本上无操作的(除了一个事实,即它们都可能产生一些输出);第三个与前两个几乎相同,只不过它除了产生前一个产品外,还会产生Already on 'master'.Already on 'master'.最后一个命令与所有其他产品相反,将放弃所有未分离的更改。

我错过了什么吗?

回答

0

根据TFM,有四种形式的git checkout命令。你的前两个例子就是其中之一,而你的另外两个例子还有两个例子。

因此,要回答你的问题,你已经错过的git checkout最后一种形式:

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

+0

你从哪里得到“四”?您链接的页面以5种不同的模式开始,涉及'git checkout' ... – kjo 2013-03-19 19:42:01

+0

向下滚动,有四个主要段落的描述。可以肯定的是,这种错配有点奇怪。 – 2013-03-19 23:31:47

0

前3个是相同的(并且是无操作,如果你没有改变一些文件将被主文件中的文件替换)。第四个只检出只有'。'中的文件,即当前目录。