[英]How to set up a local directory for mirroring a remote git repository?
這是情況。 我在服務器A上有一個遠程git存儲庫。此外,我必須使用該存儲庫中的相同源代碼在桌面B上工作。 由於訪問服務器A的帶寬有限,我想在桌面B上為存儲庫設置本地鏡像。
現在,我通過以下方式建立了鏡像存儲庫
git clone --mirror https://repository-on-server-a /local/repo/path.git
我已經通過測試了本地存儲庫
git clone file://localhost/local/repo/path.git
然后我修改了crontab做
cd /local/repo/path git fetch -q
每5分鍾同步一次。 它運作良好。
一開始,我正在考慮使用
git config --global url.file://localhost/local/repo/path.git.insteadOf https://repository-on-server-a
讓git從本地目錄而不是遠程倉庫中獲取所有對象。 但是,它不起作用。
我的問題是
本地目錄用於測試,而不是最終解決方案。 稍后,我將有另一個桌面C從桌面B獲取源代碼。 另一位同事也將加入我的行列。 這意味着我們希望將所有更改都放在Desktop B中,以便為我們提供一些“中心”解決方案。
鏡子是做什么用的? 您本地的git工作目錄已經是原始存儲庫的鏡像; DVCS就是這樣工作的。 我不了解在文件系統上使用第二個本地副本的好處。
編輯如果要使用一個存儲庫作為本地網絡收集點,以在網絡的其余部分和上游來源之間進行更改,那么cron作業就可以了。 在執行fetch -a
之后,只需執行push --mirror
。
但是,我不會理會代理/別名設置。 只是讓每個人都克隆並顯式推送到您的本地鏡像; 這樣,如果他們出於某種原因需要到達真正的原點,它就不會成為障礙。 他們甚至可以將兩個URL都設置為遠程URL,默認情況下使用本地URL,並根據需要使用遠程名稱提供真實URL。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.