如何解决使用从多个站点合并的Git子树
| 我的项目使用了许多第三方库。我使用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添加到消息中。
以后,您可以使用ѭ5合并新的“上游”更改:
git pull -Xsubtree=sub sub master
默认的提交消息将包括存储库URL和分支名称:
Merge branch \'master\' of server:path/to/repository
另一方面,在初始合并和后续合并中直接引用提交对象而不使用分支名称的变体(例如,用“ 8”代替“ 9”)将阻止记录分支名称;如果有人决定从ѭ10而不是ѭ11中拉出,则不记录URL的情况也是如此。
, 您是否考虑过使用子模块?看起来很适合您的工作流程。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。