簡體   English   中英

用烏龜 git 更新 git 本地分支克隆

[英]Update git local branch clone with tortoise git

建築學:

  • git 存儲庫 A 位於沒有互聯網的 PC A 上
  • git repo C 是 gitA 的副本,通過 Git 克隆創建並在硬盤上
  • git repo B 是 gitC 的副本,通過 Git 克隆創建,位於 pcB 上

設想:

  • gitA 是團隊成員之間使用的共享文件夾
  • 我在 pcB 上的 gitB 上工作
  • 我需要從 gitB -> gitC -> gitA 更新文件
  • 然后從 gitA -> gitC -> gitB 解決與 gitA 中的成員的沖突

我怎樣才能實現上述場景?

你正在以三角形的方式工作。

祝福的 repo是 A 並且在沒有互聯網連接的機器上 共享 你在 B 上工作 。A 是 B 的起源,因此你從 B 推/拉到 A。這可以使用 Tortoise 上下文菜單從你的工作倉庫中實現,應該沒什么大不了的。

C 是 A 的備份,在具有 Internet 連接的機器上。 因此,C 實際上是受祝福的回購,B 是 C 的孩子。 B 應該能夠直接推/拉到 C。 B 和 C 不是父子關系,而是兄弟姐妹。 您可能會說 C 是您的同事 Carlo 正在處理的 PC C 上的存儲庫。

您想從 B 推送到 C。為此,B 的遙控器應設置為 C,而不是 A。然后您想從 Z0D61F8370CAD1D412F870B84D143E 推送到 A。 換種說法,您想將更改推送到您的同事 Carlo,然后讓 Carlo 將任何內容發布到受 祝福的存儲庫A。這里唯一的問題是 Carlo 不存在。

我建議您將 C 制作為 A 的鏡像副本。 避免推送到 C C 是 A 的備份,因此繼續,git 從 A git fetch C B 是工作副本,將直接推送到 A C 並直接從 A C 拉取。 “嘿,但是我們為解決 A 中的沖突所做的任何更改也將在 B 中,我不希望那樣!” 不,你想要那個,因為這些更改遲早會進入 B。

您的備份 C 應該是git clone --mirror參見文檔

設置源存儲庫的鏡像。 這意味着--bare --bare相比, --mirror不僅源的本地分支映射到目標的本地分支,它還映射所有 refs(包括遠程跟蹤分支、注釋等)並設置 refspec 配置,以便所有這些 refs被目標存儲庫中的git remote update覆蓋。

只要您能夠將 USB 棒 (?) 連接到沒有 Internet 連接的 A,請使用git remote update將您的更改從 C 推送到 A。

暫無
暫無

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

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