2011-03-09 112 views

回答

1

因爲該命令可以用來執行兩個動作,所以它使得使用「checkout」關鍵字有意義。

兩個動作:

  • 上的文件重新修改先前提交ID
  • 切換到一個分支

您還可以使用 - 你當參數「」想要從分支名稱中區分出一個提交ID

6

這是個好名字,因爲當檢出一個分支時,您要求存儲庫給你(就像「檢出」來自圖書館的書籍),其最新修訂版本中的所有適當文件均指明該分支爲您的工作副本。

git checkout這裏沒有「其他含義」的問題。該命令爲您提供一個單獨的文件或一組文件(請參閱:「分支」),其編號爲修訂狀態X。不管你認爲「回覆」還是缺少git checkout的靈活性和一般性。在這兩種情況下,它都是從存儲庫中檢出某些狀態量並將其設置爲工作副本,隨時可以進行編輯。

+1

我的問題與「結帳」一詞是暗示你有義務稍後登記。就像圖書館的比喻 - 你借了一本書,然後再把它拿回來。或者其他的源代碼控制軟件,其中檢出具有相同的含義 - 擁有臨時(可能是獨佔)訪問文件的權限,當您稍後退出時應該放棄該文件。 – 2014-07-22 18:29:51

1

checkout是指更新工作樹中的文件。 還原還意味着將工作樹中的文件更新爲之前的提交。 所以在我看來,有一個命令更新或使用git checkout更加現實。

12

我看到大多數其他答案正在解釋什麼git checkout做什麼,以及爲什麼「結賬」可能是一個合理的方式來形容。不過,雖然我喜歡的git高昂的代價,這也觸及當我試圖幫助人們瞭解系統中出現挫折的兩個嚴重點:

  1. git checkout做兩個非常不同的事情,這將是如果他們是單獨的命令,對新人很有幫助。

  2. 憤世嫉俗的人可能會認爲git的術語是故意選擇混淆來自CVS和Subversion的人!你提到的那個(checkout)就是一個很好的例子。另一個是commit,這完全是git中的本地特性,完全依賴於CVS/SVN中的服務器 - 「record」的darcs術語對於新入門的人來說需要更少的un-learning。另一個例子我喜歡的是消息「需要更新」,你在Git中看到,這實際上意味着"needs to be committed" :)

當然,一個總是可以使用了不同的前端與git,如easy gitiolaus,等等但大多數人最終都必須學習標準命令,所以你只需要習慣其中一些被命名的令人驚訝的東西。

我敢肯定有在git的這些各種命令的名稱歷史原因,但它是有幫助的,如果不同的話已被選定...


更新:VonC鏈接在an answer with a neat alias to make git checkout safer的兩個用法中的任何一個的評論;)

+0

+1000:100%同意。更多關於結賬危險:http://stackoverflow.com/questions/2961240/get-back-the-changes-after-accidental-checkout/2961348#2961348 – VonC 2011-03-09 11:52:41

+0

@VonC:謝謝 - 我喜歡檢查點的成語! – 2011-03-09 12:35:54

+0

@VonC:關於這個話題,我想你可能對我的一篇新博客感興趣[混淆git術語](http://longair.net/blog/2012/05/07/the-most-confusing- git-terminology /)增加了幾個例子。 – 2012-05-07 10:08:56

相關問題