簡體   English   中英

Git-如何使用特定的遠程分支作為存儲庫的上游源?

[英]Git - How can I use a specific remote branch as the upstream source for a repository?

也許我想到的是糟糕的工作流程,但是現在我們開始吧。 我有一個我想用作其他項目基礎的項目,因為它們都保持相同的結構並共享公共類。 這樣的基礎項目存儲在其自己的Git存儲庫中(我們將其稱為MyBaseRepo ),該存儲庫中存在兩個分支:

  • master ,其中包含項目的精簡版本。
  • mybranch ,包含master中包含的所有內容,以及更具體的類。

我想做的是以下幾點:

  • 創建一個新項目,例如MyNewProject ,從MyBaseRepo克隆兩個分支之一
  • 創建一個新的MyNewProjectRepo Git存儲庫,作為新項目的源。
  • 將與MyNewProject的實現相關的所有更改推/拉到MyNewProjectRepo
  • 更新MyBaseRepo后 ,請從相應的分支中獲取更改。

簡而言之,我想進行某種“存儲庫繼承”,以便在基類發生更改時,子項目可以獲取更新。

到目前為止,我幾乎可以通過在需要時獲取MyBaseRepo ,然后將適當的MyBaseRepo /分支MyNewProject master(或任何MyNewProject分支)合並來完成上述操作。 這是正確的做法嗎?還是讓我的生活變得比應有的復雜? 預先感謝您的回答。

我認為您描述問題的方式(除了兩個分支部分),可以使用git submodules 有了它,項目的每個修訂版都將綁定到子模塊的特定修訂版。

如果您確實需要MyBaseRepo兩個分支, MyBaseRepo可以這樣做:

  • 初始化一個空的倉庫:

$ git init

  • 進行提交以初始化master

  • 將遠程MyBaseRepo添加到新的倉庫中:

$ git remote add MyBaseRepo the_repo_location $ git fetch MyBaseRepo

  • 然后,在需要時合並:

$ git merge MyBaseRepo/master

要么

$ git merge MyBaseRepo/mybranch

但是我會使用子模塊。 這是一個“更干凈”的解決方案-無需從遠程分支合並,只需更新子模塊。

暫無
暫無

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

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