亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

git clone --mirror和git clone --bare之間的區別是什么

git clone --mirror和git clone --bare之間的區別是什么

Git
溫溫醬 2019-07-31 14:01:03
git clone --mirror和git clone --bare之間的區別是什么git clone幫助頁面有這樣的說法--mirror:設置遠程存儲庫的鏡像。這意味著--bare。但是沒有詳細說明--mirror克隆與克隆的不同之處--bare。
查看完整描述

3 回答

?
慕少森

TA貢獻2019條經驗 獲得超9個贊

不同之處在于,使用時--mirror,所有引用都按原樣復制。這意味著一切:遠程跟蹤分支,備注,引用/原件/ *(來自filter-branch的備份)。克隆的回購擁有一切。它也設置為遠程更新將從原點重新獲取所有內容(覆蓋復制的引用)。這個想法實際上是為了鏡像存儲庫,以獲得一個完整的副本,以便您可以在多個位置托管您的中央存儲庫,或者備份它。想想只是直接復制回購,除了更優雅的git方式。

新文檔幾乎說明了這一切:

--mirror

設置源存儲庫的鏡像。這意味著--bare。相比之下--bare--mirror不僅將源的本地分支映射到目標的本地分支,它還映射所有引用(包括遠程分支,注釋等)并設置refspec配置,以便所有這些引用都被git remote update目標存儲庫中的a覆蓋。

我的原始答案還注意到裸克隆和普通(非裸)克隆之間的差異 - 非裸克隆設置遠程跟蹤分支,僅創建本地分支HEAD,而裸克隆直接復制分支。

假設起源有幾個分支(master (HEAD),next,pumaint),一些標簽(v1v2,v3),一些遠程分支機構(devA/masterdevB/master),以及其他一些裁判(refs/foo/bar,refs/foo/baz,這可能是筆記,儲物箱,其他開發者的命名空間,誰知道)。

  • git clone origin-url(非裸):您將得到所有復制的標簽,一個本地分支master (HEAD)追蹤遠程分支origin/master和遠程分支origin/nextorigin/puorigin/maint。設置了跟蹤分支,這樣如果你做了類似的事情git fetch origin,它們就會像你期望的那樣被提取。任何遠程分支(在克隆的遠程中)和其他引用都被完全忽略。

  • git clone --bare origin-url您將獲得全部復制的標簽,地方分支機構master (HEAD),next,pu,和maint,沒有遠程跟蹤分支。也就是說,所有分支都按原樣復制,并且它設置為完全獨立,不期望再次獲取。任何遠程分支(在克隆的遠程中)和其他引用都被完全忽略。

  • git clone --mirror origin-url這些引用中的每一個都將按原樣復制。你會得到所有的標簽,地方分支機構master (HEAD),next,pu,和maint,遠程分支機構devA/masterdevB/master其他裁判refs/foo/barrefs/foo/baz。一切都與克隆的遙控器完全一樣。設置遠程跟蹤,以便在運行時,git remote update所有引用都將從原點覆蓋,就像您剛刪除鏡像并重新克隆它一樣。正如文檔最初所說,它是一面鏡子。它應該是功能相同的副本,可與原始版本互換。


查看完整回答
反對 回復 2019-07-31
?
慕田峪7331174

TA貢獻1828條經驗 獲得超13個贊

$ git clone --mirror $URL

是一個簡稱


$ git clone --bare $URL

$ (cd $(basename $URL) && git remote add --mirror=fetch origin $URL)

(直接從這里復制)


當前的man-page如何表達:


相比之下--bare,--mirror不僅將源的本地分支映射到目標的本地分支,它還映射所有引用(包括遠程分支,注釋等)并設置refspec配置,以便所有這些引用都被git remote update目標存儲庫中的a覆蓋。


查看完整回答
反對 回復 2019-07-31
  • 3 回答
  • 0 關注
  • 33755 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號