我有一个开发分支和一个主分支。 我们在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正在扩展
答案 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]
如果我理解正确,可能会这样吗?