Git:在两个分支上标记两个提交相同但两个提交的历史记录不同

时间:2016-03-21 10:55:22

标签: git-merge git-rebase

我有一个开发分支和一个主分支。 我们在dev分支上进行开发直到发布日期。 在发布日,我们将dev分支“commit-by-commit”上的所有更改重新绑定到master分支并合并它们。 这样我们就可以保留master分支上的提交历史。

过去,(PROBABLE REASON)一旦我忘记执行commit-by-commit并在dev上推送几个提交(比如A,B,C)作为对master(A')的单个提交。

现在,每当我在para1中执行上述活动时,它会发现A'不同,并尝试将相应的提交A,B,C重新绑定为master。

我希望通过指示git来克服这个问题 - 在dev分支上由C指向的repo内容与在master上的A'指向的repo内容相同。要么 - J在dev分支上指向的repo内容与J在master上指向的内容相同。 有了这个,我希望该工具只选择新的提交。

有办法吗?

dev : /A-B-C =D-E-F=G-H-I-J master: Z-Y- A'=D-E-F=G-H-I-J

=表示从开发到主分支的合并以进行发布 /表示dev正在扩展

1 个答案:

答案 0 :(得分:0)

git checkout dev
git checkout -b temp-dev [SHA for C]
git checkout master
git checkout -b temp-master [SHA for Y]
git rebase temp-dev
git branch -D master
git branch -D temp-dev
git branch -m temp-master master
git tag [your previous release]

... do the same for F ...

git rebase dev
git tag [your new release]

如果我理解正确,可能会这样吗?