在Git中保持分支同步

3

使用SVN,我有以下设置:

/tags/
/trunk/
/branches/
/branches/my_feature
/branches/my_other_feature

我希望保持所有分支与主干线同步,因此我定期为分支运行一个从主干线合并的 SVN 命令。
但是,我还想让所有分支相互同步,以避免冲突,因为任何给定分支的生命周期可能长达几个月甚至更长。如果我有十几个分支,那么在 SVN 中会形成复杂的网状结构,这是不现实的。
我的问题是,使用 Git 而不是 SVN 是否有助于让分支之间和主干线保持同步?

不确定这是否有所不同,但是涉及的项目 - 你是与许多其他人一起工作,还是只有少数人,或者它是一个独立项目(目前为止)? - Frank V
大约有半打其他开发者。 - Chad Johnson
3个回答

6

通过执行rebase操作,您可以帮助保持两个分支与主干同步。

在使用my_feature分支时,执行以下操作:

git rebase master

这将把您在主干分支(trunk)中的更改带到我的功能(my_feature)中。

关于保持我的功能(my_feature)和我的其他功能(my_other_feature)同步,如果一个是另一个的后代,则原则相同。如果my_feature不是my_other_feature的后代或反之亦然,则我不知道答案。


2

大部分情况下是可以的。现代的三种分布式版本控制系统(Git、Mercurial和Bazaar)都能够知道上一次合并的时间,并且不会尝试重新合并已经合并过的变更集。

如果你正在做一些非常棘手的事情,可能会遇到一些奇怪的边缘情况,但即使如此,它也比使用SVN好得多。


0
请注意,为了获得所需的功能,您应该完全使用 Git 而不是 SVN。如果您仅将 git 作为 SVN 的前端(通过 git svn)使用,则可能会导致 SVN 用户看到某些东西不正确。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接