用於工作區,我試圖做一個裸克隆,但遠程分支是映射到遠程跟蹤分支。Git克隆 - 創建一個裸露的克隆,但與遠程跟蹤分支(工作樹'主'回購)
我正在嘗試設置一個通用工作樹工作流程。我的回購真的很大,所以克隆它非常昂貴。即使使用硬鏈接,由於回購得到gc
ed,它們往往會隨着時間的推移而分化並佔用額外的空間,而在一個回購庫中取回對另一回購沒有幫助,所以在工作中工作似乎是顯而易見的事情。 (你必須在此相信我。)
工作區需要一個實際存放對象的「主」回購。顯然,這個克隆不能被刪除,所以我想把它放在類似/var/cache/git/reponame.wt.git
的地方。 (我正在爲我和我的同事制定一個通用的解決方案,所以我必須使其相當安全)。
I 可能使它成爲一個常規克隆,但它必須檢出一個分支然後該分支不能被任何其他工作樹檢出,所以我必須製作一個可能會讓人困惑的虛擬分支(例如wt_dummy
)。我真正想做的是使主要回購bare
回購。
問題是,git clone --bare
不創建遠程跟蹤分支。所以,做一個「裸回購,但與遠程跟蹤分支」,我已經開始這條道路
git clone --bare <remote> repo.tmp
mv repo.tmp.git reponame.wt.git
cd reponame.wt.git
git config core.bare true
git config --remove-section branch.master
... and I'm not quite there yet ...
但)它似乎過於漫長而複雜的,和b)git倉庫仍然認爲它已經master
查了出。
有沒有更好的方法來使這個「遙控裸露克隆」?
(也許有更好的方法來設置一般worktrees,但我明白,得到的堆棧溢出的「特定的編程解決方案」範圍的毛茸茸的邊緣。)
「*我可以使它成爲一個常規的克隆,但它必須檢出一個分支,然後該分支不能被任何其他工作樹檢出,所以我必須創建一個虛擬分支(例如wt_dummy)這可能會使人們感到困惑*「爲什麼你不創建一個空的提交併在非裸倉庫中檢出它(作爲分離的HEAD)? – Leon
一個合理的想法。你甚至可以做'git clone --no-checkout --branch v1.0 reponame.wt'來給你一個沒有簽出但是頭部指向'v1.0'標籤的repo。 –
Mort