首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >为什么git svn dcommit会丢失本地分支的合并提交历史记录?

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

Stack Overflow用户
提问于 2009-01-08 20:27:28
回答 2查看 4.5K关注 0票数 18

我有一个用git svn clone创建的本地git存储库。我创建了一个本地分支,做了一些更改,切换回master,git svn rebase,如果一切正常,我将分支合并回master。然后这棵树看起来就像这样:

alt text http://img.skitch.com/20090108-cjguu3hcci9x2k17mcftamw8f1.jpg

有时,稍后当我再次git svn rebase并获得一些远程更改时,它会丢失a_branch已合并到主线中的事实,树看起来如下所示:

alt text http://img.skitch.com/20090108-kn3bn1qgi5ijw8ja5ijkd75pa3.jpg

为什么会这样呢?我能阻止它吗?有没有一种简单的方法来判断分支已经合并了,或者我应该在完成后删除我的分支,这样我就不会忘记哪些分支已经合并,哪些没有合并?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-01-08 22:19:58

git-svn手册页建议您不要使用merge。这是一个副作用。由于您正在重新设置分支的基址(git svn rebase有点像"git pull --rebase"),因此它会有效地重写历史。它可能会丢弃subversion中已经在上游的任何本地提交,比如merge,而只保留那些真正存在于svn存储库中的提交。因为本地分支的简单合并提交在SVN中没有等价物,所以您只提交“真正的”更改,所以这些更改是在新的重新建立基础的主分支中唯一可以看到的更改。

理想情况下,您的本地分支应该只合并快进,即不会生成合并提交。如果不是这样,那么您应该考虑将本地分支重新建立到master上,而不是合并它。这就避免了完全创建合并提交。

票数 22
EN

Stack Overflow用户

发布于 2009-01-08 20:39:03

因为你要通过svn。当你这样做的时候,你会丢失很多信息(例如,你还会失去作者)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/425766

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档