当前位置:  开发笔记 > 开发工具 > 正文

为什么git svn dcommit会丢失本地分支的合并提交历史记录?

如何解决《为什么gitsvndcommit会丢失本地分支的合并提交历史记录?》经验,为你挑选了1个好方法。

我有一个创建的本地git存储库git svn clone.我创建一个本地分支,进行一些更改,切换回master,git svn rebase如果一切都好,我将我的分支合并回master.然后树看起来像这样:

替代文字http://img.skitch.com/20090108-cjguu3hcci9x2k17mcftamw8f1.jpg

有时,稍后当我git svn rebase再次进行一些远程更改时,它会失去a_branch合并到主线并且树看起来像这样的事实:

替代文字http://img.skitch.com/20090108-kn3bn1qgi5ijw8ja5ijkd75pa3.jpg

这是为什么?我可以阻止它吗?有没有一种简单的方法来判断分支是否已合并,或者在我完成时应该删除我的分支,所以我不会忘记已经合并了什么?



1> richq..:

git-svn手册页建议您不要使用merge.这是一个副作用.由于你正在重新定义分支(git svn rebase有点像"git pull --rebase"),它有效地重写了历史.它可能会丢弃已经在subversion中上游的任何本地提交,例如合并,并且只保留svn存储库中真正存在的那些提交.由于本地分支的普通合并提交在SVN中没有等效,因此您只提交"实际"更改,因此这些是您在新的重新分配的主分支中看到的唯一更改.

理想情况下,您的本地分支应仅合并快进,即不生成合并提交.如果不是这种情况,那么您应该考虑将本地分支重新定位到master而不是合并它.这样可以避免完全创建合并提交.

推荐阅读
mobiledu2402852357
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有