使用SVN,我有以下设置:
/tags/
/trunk/
/branches/
/branches/my_feature
/branches/my_other_feature
我想让所有分支与主干线路同步,所以我定期为主干分支运行svn合并。
但是,我还希望保持所有分支彼此同步,以避免冲突,因为任何给定分支的生命周期可能是几个月或更长时间。如果我有十几个分支,我会有一个与SVN讨厌的网格,这是不切实际的。
我的问题是,使用Git而不是SVN帮助保持分支机构彼此同步和干线?
答案 0 :(得分:6)
通过执行rebase,可以帮助您保持两个分支与trunk同步。
使用分支my_feature时,执行:
git rebase master
这会将您在主(主干)分支中的更改带到my_feature。
关于保持my_feature和my_other_feature同步,如果一个是另一个的后代,则其原理相同。如果my_feature不是my_other_feature的后代或反之,我不知道答案。
答案 1 :(得分:2)
是的,大部分时间。所有三个现代DVCS(Git,Mercurial和Bazaar)都可以判断您上次合并的时间,并且不会尝试重新合并已经合并的变更集。
如果你正在做一些真正棘手的事情,你可能会遇到一些奇怪的边缘情况,但即使你这样做也会比使用SVN 里程更好。< / p>
答案 2 :(得分:0)
请注意,您应该使用Git 完全而不是SVN来获得所需的功能。如果你只是使用git作为前端到SVN(vai git svn
),这可能会导致SVN用户看起来不正确。