Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Git 合并/重设基础工作流_Git_Merge_Rebase - Fatal编程技术网

Git 合并/重设基础工作流

Git 合并/重设基础工作流,git,merge,rebase,Git,Merge,Rebase,我正在更改git合并工作流,遇到以下问题: 到目前为止,每当我发布新版本时,我都会将(--no ff)我在develope分支上的更改合并回master。这将生成一个新的合并提交,其中包含所有develope-commit的历史记录(--log)。 我意识到这是次优的,并希望实际执行从我的develope分支到master的快进合并(在develope上更改了我的提交消息,以“更干净”的方式反映我的更改) 我当前的问题是:master上最近的提交仍然是上次的合并提交,因为我现在无法从develo

我正在更改git合并工作流,遇到以下问题:

到目前为止,每当我发布新版本时,我都会将(--no ff)我在
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分支上重新开始,感觉更干净、更安全