我正在开发一个有两个分支的 git-svn 项目,让我们称它们为
trunk
branches/foo
如何将分支/foo 合并到主干?
他们都有最新的更新
谢谢
不建议通过 Git 合并两个 SVN 分支。如果在 Git 中你从你的branches/foo
克隆合并到你的trunk
克隆,然后成功地推回 SVN,文件将被正确更新trunk
,但 SVN 不会意识到这是合并的结果 - 没有合并跟踪信息在 SVN 中更新。
事实上,它变得比这更复杂 - 当你在两个都跟踪远程 SVN 存储库的 Git 分支之间合并时,git-svn 会变得非常混乱,而且很容易弄乱你的存储库。这是因为 git-svn 回顾你的 Git 日志以查找 SVN 跟踪信息,如果它找到一个合并,那么它不一定会沿着你期望的分支前进。因此,即使您已经从branches/foo
into合并trunk
并且您现在在主干上,a 也有可能dcommit
会推回branches/foo
.
最好切换回常规的 SVN 工具来进行合并,然后只使用 git-svn 进行开发。
另一个屋顶选项可能是下一个:
签出你的主干分支 # git checkout -b trunk git-svn-trunk
并将cherry-pick dev提交到主干分支,
我更喜欢一一挑选,慢慢解决冲突
之后你有 2 个具有相同提交的分支也许你想删除 dev 分支并从主干分支创建一个新的 dev 分支,现在这个分支(新的 dev 分支)对你的 svn 主干有一个正确的 git-svn 引用......
保留@simonp 回答的建议
我希望这对你有帮助