Git Rebase行为

时间:2017-04-21 13:17:16

标签: git rebase

我知道有很多关于git rebase的问题但是在我试图绕过它两周后我仍然遇到问题。

情境:

Nonprod Branch:

New code to push to production

生产部门

Production code waiting for an update from non-prod

我们正准备将非生产代码推向生产。

我们现在有一个紧急修补程序适用于生产。

git checkout production
git checkout -b hotfix_for_prod
<do some changes>
git add ...
git commit ....
git push ...
<Merging hotfix_for_prod with Production branch>

现在..

Nonprod Branch:

New code to push to production

生产部门

Production code waiting for an update of non-prod
Hotfix

我们希望从生产中改变非生产,但我们得到了一些非常奇怪的结果,这些冲突在当前的Nonprod或Prod状态下是不存在的。我们试过了:

git checkout Nonprod
git pull
git checkout -b nonprod_rebase_prod
git rebase production
<Strange results in many files that do not match Prod OR Nonprod branches>

编辑奇怪的行为会在文件中显示冲突,其中对文件进行更改的两个提交不是生产头或非生产头。提交必须进一步提交,但我们不希望得到任何结果。

然后我们尝试了这个:

git checkout production
git pull
git checkout -b prod_rebase_nonprod
git rebase nonprod

我们得到了我们期待的结果。这对我来说毫无意义。我会假设,因为Nonprod需要prod中的数据,当我们将prod中的nonprod变为非prod时,prod中的变化将在历史记录中非变态,我们甚至无法解决合并冲突,因为它们毫无意义

当我们将非产品变为prod时,我们得到了我们想要的结果,但这没有任何意义。当父母是原点时,如何将子分支重新绑定到父分支?那么我们是否将这个分支与非生产合并?

有人可以解释一下吗?

感谢任何反馈。

0 个答案:

没有答案