簡體   English   中英

git clone和checkout有什么區別?

[英]What is the difference between git clone and checkout?

git clonegit checkout什么區別?

結帳手冊: http//git-scm.com/docs/git-checkout

克隆的手冊頁: http//git-scm.com/docs/git-clone

總而言之,clone用於獲取您沒有的存儲庫,checkout用於在您已有的存儲庫中的分支之間進行切換。

注意:對於那些具有SVN / CVS背景且不熟悉Git的人來說,SVN / CVS中的git clone相當於checkout 不同術語的相同措辭通常令人困惑。

git clone是從遠程git服務器獲取您的存儲庫。

git checkout是檢查您所需的存儲庫狀態(如分支或特定文件)。

例如,您當前在主分支上,並且您想要切換到開發分支。

git checkout develop_branch

例如,您想要簽出特定文件的特定狀態

git checkout commit_point_A -- <filename>

這里有一個很好的參考 ,你可以學習Git,讓你更容易理解。

有一點需要注意的是git中缺少任何“Copyout”。 那是因為您已在本地倉庫中擁有完整副本 - 您的本地倉庫是您所選上游倉庫的clone 因此,您可以有效地對所有內容進行個人checkout ,而無需對引用倉庫中的這些文件進行“鎖定”。

Git提供SHA1哈希值作為驗證文件/目錄樹/ commit / repo的副本與能夠在信任層次結構中將事物聲明為“主”的人所使用的完全相同的機制。 這避免了導致大多數SCM系統窒息的所有“鎖定”(通常存在私有副本,大合並以及沒有實際控制或源代碼管理的問題;-)!

簡單的git checkout有2個用途

  1. git checkout <existing_local_branch_name>類的現有本地分支之間切換
  2. 使用標志-b從當前分支創建一個新分支。 假設您在主分支處,那么git checkout -b <new_feature_branch_name>將創建一個包含master內容的新分支並切換到新創建的分支

您可以在官方網站上找到更多選項

checkout可以用於很多情況:

第一種情況 :在本地存儲庫中的分支之間切換例如: git checkout exists_branch_to_switch

您也可以使用-b創建新分支並切換到這種情況

git checkout -b new_branch_to_switch

第二種情況 :從x rev恢復文件

git checkout rev file_to_restore ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM