我的情况是,我有一个发布候选分支,用于我们当前“冻结”的候选版本,一个主分支(从发布候选者分支)用于最新的稳定工作,以及一个主题分支(从主分支)因为我正在努力的一点精子。 Master目前与候选版本处于相同的提交状态。
如果候选发布版向前推进了一些提交,那么将master发布到发布版本和主题发布版本与master版本之间是否存在任何功能差异? refs是否会改变,如果有的话,是否有理由偏好另一个?
我应该澄清这个回购是针对我自己的本地源代码控制 - 我们的团队使用不同的SCM,所以我不必担心为其他任何人搞砸事情 - 我是唯一一个承诺过的人这个回购。
答案 0 :(得分:1)
我不确定我是否正确理解你的问题,但通常是
git checkout a; git rebase c; git checkout b; git rebase c;
会生成这样的树:
--c----a
+----b
,而
git checkout a; git rebase c; git checkout b; git rebase a;
会生成这样的树:
--c----a----b
我的建议是:试着想象一下你想要的结果树的样子,并阅读git-rebase
手册页上的例子。
答案 1 :(得分:1)
我们有3个阶段(相应的分支)
以下是我们如何解决合并与rebase
的问题步骤是:
(保持生产副本最新)
git checkout production
git pull --rebase
(生产时总是使用rebase功能分支)
git checkout feature-branch
git pull --rebase
git rebase production
(总是在生产中使用rebase测试分支,为开发人员测试合并功能分支)
git checkout master
git pull --rebase
git rebase production
git merge feature-branch
(当开发人员测试成功时,总是在生产时使用登台分支,合并功能分支以供用户接受)
git checkout staging
git pull --rebase
git rebase production
git merge feature-branch
(在用户接受时批准,将功能分支合并到生产中)
git checkout production
git pull --rebase
git merge feature-branch
可能有更多优化步骤来实现这一目标 我们绝对期待听到更好的选择。