Git 合并/重设基础工作流
我正在更改git合并工作流,遇到以下问题: 到目前为止,每当我发布新版本时,我都会将(--no ff)我在Git 合并/重设基础工作流,git,merge,rebase,Git,Merge,Rebase,我正在更改git合并工作流,遇到以下问题: 到目前为止,每当我发布新版本时,我都会将(--no ff)我在develope分支上的更改合并回master。这将生成一个新的合并提交,其中包含所有develope-commit的历史记录(--log)。 我意识到这是次优的,并希望实际执行从我的develope分支到master的快进合并(在develope上更改了我的提交消息,以“更干净”的方式反映我的更改) 我当前的问题是:master上最近的提交仍然是上次的合并提交,因为我现在无法从develo
develope
分支上的更改合并回master
。这将生成一个新的合并提交,其中包含所有develope
-commit的历史记录(--log)。
我意识到这是次优的,并希望实际执行从我的develope
分支到master
的快进合并(在develope
上更改了我的提交消息,以“更干净”的方式反映我的更改)
我当前的问题是:master
上最近的提交仍然是上次的合并提交,因为我现在无法从develope
到master
进行ff合并,因为两个分支“分叉”(在develope
上缺少合并提交)
我解决这个问题的想法是,在开发中:git-rebase-master
,它将引入这个合并提交,然后使我能够在master上执行git-merge-develope
。
但是这会在
develope
(这个特定的合并提交)上生成一个新的提交吗?或者git会足够聪明地认识到这个合并提交的更改已经是develope
的一部分吗?git rebase master
而在develope
上可以很好地满足您的需要
如果您的分支当前是这样的:
A-B-C-D-E <-- master
/
F-G-H-I-J <-- develop
A-B-C-D-E-I'-J' <-- master
然后,它将快进合并回主控形状,如下所示:
A-B-C-D-E <-- master
/
F-G-H-I-J <-- develop
A-B-C-D-E-I'-J' <-- master
A-B-C-D-E-I'-J'git-rebase-master
在develope
上运行时,可以很好地满足您的需要
如果您的分支当前是这样的:
A-B-C-D-E <-- master
/
F-G-H-I-J <-- develop
A-B-C-D-E-I'-J' <-- master
然后,它将快进合并回主控形状,如下所示:
A-B-C-D-E <-- master
/
F-G-H-I-J <-- develop
A-B-C-D-E-I'-J' <-- master
A-B-C-D-E-I'-J'您的方法应该允许它工作。当然,解决这个问题的另一种方法是在下次合并时完全删除开发分支,以防重定基失败。然后从master分支出一个新的develop,并从该点开始重新设置基础
在我以前的公司,我们也尝试将我们的工作流程从合并切换到重新定基。但由于不同分支的合并,它最终遇到了各种各样的奇怪问题。直接从master开始在develop分支上重新开始感觉更干净、更安全。您的方法应该允许它工作。当然,解决这个问题的另一种方法是在下次合并时完全删除开发分支,以防重定基失败。然后从master分支出一个新的develop,并从该点开始重新设置基础
在我以前的公司,我们也尝试将我们的工作流程从合并切换到重新定基。但由于不同分支的合并,它最终遇到了各种各样的奇怪问题。直接从master开始在development分支上重新开始,感觉更干净、更安全