簡體   English   中英

如何設置本地目錄以鏡像遠程git存儲庫?

[英]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從本地目錄而不是遠程倉庫中獲取所有對象。 但是,它不起作用。

我的問題是

  1. 有沒有簡單的方法可以為遠程git repo設置此類本地鏡像?
  2. 如何處理'git push'? 由於replaceOf會將所有推送都推送到本地目錄,因此如何將所有更改推送回服務器A?

本地目錄用於測試,而不是最終解決方案。 稍后,我將有另一個桌面C從桌面B獲取源代碼。 另一位同事也將加入我的行列。 這意味着我們希望將所有更改都放在Desktop B中,以便為我們提供一些“中心”解決方案。

鏡子是做什么用的? 您本地的git工作目錄已經原始存儲庫的鏡像; DVCS就是這樣工作的。 我不了解在文件系統上使用第二個本地副本的好處。

編輯如果要使用一個存儲庫作為本地網絡收集點,以在網絡的其余部分和上游來源之間進行更改,那么cron作業就可以了。 在執行fetch -a之后,只需執行push --mirror

但是,我不會理會代理/別名設置。 只是讓每個人都克隆並顯式推送到您的本地鏡像; 這樣,如果他們出於某種原因需要到達真正的原點,它就不會成為障礙。 他們甚至可以將兩個URL都設置為遠程URL,默認情況下使用本地URL,並根據需要使用遠程名稱提供真實URL。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM