我們已經為 out 團隊設定了一個 central_repo。我們團隊中的每個人都會git clone從 central_repo 做一個然后推回那里。
現在,我們需要將 central_repo 移動到另一個位置,因為我們需要為當前主機節省磁盤空間。
我可以這樣做嗎?
git clone --mirror /existing/path/central_repo /new/path/central_repo
rm -rf /existing/path/central_repo
ln -s /new/path/central_repo /existing/path/central_repo
我自己做了一個簡單的測驗,似乎大多數命令都在作業。但是,我只是想確保我不會錯過任何事情并搞砸專案,如果發生任何事情,我會讓自己陷入不可逆轉的境地。
預先感謝。
uj5u.com熱心網友回復:
看起來您正試圖在同一系統內移動您的存盤庫。
是這樣嗎,如果您處于可以凍結當前中央存盤庫上的所有 git 操作的情況,例如:
git push告訴同事在你說之前不要跑,- 關閉您的本地
gitlab實體, - 暫停你的 CI 作業......
你可以簡單地運行:
mv /existing/path/central_repo /new/path/central_repo
ln -s /new/path/central_repo /existing/path/central_repo
請注意,您要阻止的 git 操作是寫入操作(推送新提交、更新分支或標簽)。讀取操作(git clone或git fetch,git ls-remote...)不會更改中央存盤庫的內容。
您提出的操作順序是可以的,仍然存在“在和之間更新了一些東西”的問題git clone --mirror(rm -rf existing_repo請注意,除非您有 10k 開發人員可以隨時推送,否則實際上這個問題實際上很小)。
恕我直言,您仍然需要安排一個“服務關閉”視窗(這將非常短)來運行您的遷移。
為了安全起見,請運行:
mv /existing/path/central_repo /existing/path/central_repo_old
#rather than a straight:
rm -rf /existing/path/central_repo
這至少可以讓您central_repo_old在洗掉它之前檢查它的內容。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/488184.html
下一篇:開發總是落后于大師
