簡體   English   中英

使用 Git 子樹從多個站點合並

[英]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.

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