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

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

Bare和非Bare存儲庫之間的實際區別是什么?

Bare和非Bare存儲庫之間的實際區別是什么?

Git
慕容3067478 2019-08-12 09:48:16
Bare和非Bare存儲庫之間的實際區別是什么?我一直在閱讀Git中的裸機和非裸機/默認存儲庫。我無法理解(理論上)它們之間的差異,以及為什么我應該“推”到一個裸存儲庫。這是交易:目前,我是唯一一個在3臺不同計算機上工作的人,但是后來會有更多人參與其中,所以我使用Git進行版本控制。我在所有計算機上克隆了裸倉庫,當我在其中一臺計算機上完成修改后,我提交并將更改推送到裸倉庫。從我所讀到的,裸存儲庫沒有“工作樹”,所以如果我克隆裸倉庫,我將沒有“工作樹”。我猜測工作樹存儲項目中的提交信息,分支等。這不會出現在裸倉庫中。因此,對于我來說,使用工作樹將提交“推送”到repo似乎更好。那么,為什么我應該使用裸存儲庫,為什么不呢?有什么實際區別?我認為,這對于從事項目的更多人來說沒有好處。你做這種工作的方法是什么?建議?
查看完整描述

3 回答

?
慕村225694

TA貢獻1880條經驗 獲得超4個贊

裸存儲庫和非裸存儲庫之間的另一個區別是裸存儲庫沒有默認的遠程存儲庫:

~/Projects$ git clone --bare test bareInitialized empty Git repository in /home/derek/Projects/bare/~/Projects$ cd bare~/Projects/bare$ git branch -a* master~/Projects/bare$ cd ..~/Projects$ git clone test non-bareInitialized empty Git repository in /home/derek/Projects/non-bare/.git/~/Projects$ cd non-bare~/Projects/non-bare$ git branch -a* master
  remotes/origin/HEAD -> origin/master
  remotes/origin/master

從手冊頁git clone --bare

遠程處的分支頭也直接復制到相應的本地分支頭,而不將它們映射到refs / remotes / origin /。使用此選項時,既不會創建遠程跟蹤分支,也不會創建相關的配置變量。

據推測,當它創建一個裸存儲庫時,Git假定裸存儲庫將作為幾個遠程用戶的源存儲庫,因此它不會創建默認的遠程源。這意味著基本git pullgit push操作將無法工作,因為Git假設沒有工作空間,您不打算對裸存儲庫進行任何更改:

~/Projects/bare$ git pushfatal: No destination configured to push to.~/Projects/bare$ git pullfatal: /usr/lib/git-core/git-pull cannot be used without a working tree.~/Projects/bare$


查看完整回答
反對 回復 2019-08-12
?
炎炎設計

TA貢獻1808條經驗 獲得超4個贊

裸存儲庫只是.git文件夾本身,即裸存儲庫的內容與本地工作存儲庫中.git文件夾的內容相同。

  • 在遠程服務器上使用裸存儲庫以允許多個貢獻者推動他們的工作。

  • 非裸 - 具有工作樹的那個在您項目的每個貢獻者的本地機器上是有意義的。


查看完整回答
反對 回復 2019-08-12
  • 3 回答
  • 0 關注
  • 852 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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