[英]Using Git subtree merging from multiple sites
我的項目使用了許多 3rd 方庫。 我使用http://progit.org/book/ch6-7.html中描述的子樹合並過程。 我想允許其他開發人員維護庫並定期合並來自庫存儲庫的更新:
$ git checkout rack_branch
$ git pull
有沒有辦法發布 rack_remote 和 rack_branch,所以它們將成為中央存儲庫的一部分,讓其他開發人員也可以使用它們?
您可能應該在項目文檔的某些部分中記錄前綴 URL 和每個子樹“上游”的分支。
下面的示例顯示此信息通常會記錄在您的子樹合並提交消息中,但這取決於合並和/或拉取完成的確切方式。
考慮使用以下命令創建初始子樹合並:
git merge --no-commit sub/master
git read-tree -u --prefix=sub sub/master
git commit
提交消息將如下所示:
Merge remote-tracking branch 'sub/master'
我們可以看到遠程被命名為sub
而分支被命名為master
,但是我們沒有看到 URL。 您可以在最后一步手動提交時將 URL 添加到消息中。
稍后,您可以使用git pull
來合並新的“上游”更改:
git pull -Xsubtree=sub sub master
默認提交消息將包括存儲庫 URL 和分支名稱:
Merge branch 'master' of server:path/to/repository
另一方面,初始合並和后續合並的變化直接引用提交對象而不是使用分支名稱(例如15dbbda
而不是sub/master
)將阻止記錄分支名稱; 如果有人決定從. remotes/sub/master
. remotes/sub/master
而不是sub master
。
您是否考慮過使用子模塊? 看起來它適合您的工作流程。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.