如何维护长时间运行的git分支

Ana*_*and 23 git

理想情况下,Git分支应该持续很短的时间,可能持续1-2天.然后它被合并到一些主线.

但在某些情况下,我们处理非常大的功能,我们维护分支机构.当2或3个人在代码的专属领域中处理这些非常大的功能时,维护它们变得有点困难.

在进入稳定分支的热修复中,我们需要将这2-3个大分支与稳定分支同步.所以我们经常这样做.

(in feature-branch1) $ git merge stable
(in feature-branch2) $ git merge stable
(in feature-branch3) $ git merge stable
Run Code Online (Sandbox Code Playgroud)

有没有正确的方法来维护这些长期运行的分支?通过以上操作,git历史有点混乱.这些功能分支主要被推送到远程,这意味着我们无法看到rebase这个选项.我还可以做些什么?

mis*_*lav 16

偶尔在稳定分支中进行合并实际上是您可以做的最简单和最好的事情,以使您的功能分支保持最新.我不建议使用rebasing,因为可能会有更多人同时处理该功能,并且每次强制推送时他们都必须重置本地分支.即使只有一个人在功能分支上工作,合并也会更好,因为它清楚地显示了历史中从稳定分支引入修复的点.

是的,一旦将功能分支合并回稳定状态,您的历史记录就会变得有点混乱.但是只要你避免从你的git pulls(git pull --rebase改为使用)中的每日微合并的混乱,你将能够欣赏实际有意义的合并.

如果你真的想避免将新功能从稳定版合并到功能分支中,但只是想要修复错误,你可以在功能分支中挑选错误修正.然而,这可能是很多工作,因为它要求你始终处于稳定发生的一切事情之上.使用git cherry来帮助你:

# commits from "stable" that are not present in
# the current branch will be prefixed with "+"
git cherry HEAD stable
Run Code Online (Sandbox Code Playgroud)