2013-03-19 236 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個是相同的(並且是無操作,如果你沒有改變一些文件將被主文件中的文件替換)。第四個只檢出只有'。'中的文件,即當前目錄。