如何压缩包含合并提交的提交
How to squash commits that contain a merge commit
有没有办法压缩具有合并提交的提交?当没有任何合并提交时,我能够压缩,但当有合并提交时我不知道该怎么做。
喜欢这两个提交。
这里我在合并之前建立了一个像你这样的图表:
* bbcdb99 (HEAD -> feature) d
| * d568728 (master) c
| * 8714c7f b
|/
* f1aeb9a a
现在我将 master 合并到 feature 中:
* 264fc6c (HEAD -> feature) Merge branch 'master' into feature
|\
| * d568728 (master) c
| * 8714c7f b
* | bbcdb99 d
|/
* f1aeb9a a
好吧,如果我想将功能压缩到只有一个提交并擦除 合并提交,那么我不应该那样合并。我应该做一个壁球合并!然而,一切并没有丢失。我可以将软重置回 f1aeb9a 并进行新的提交:
$ git reset --soft f1aeb9a
$ git commit -m"new commit"
这给出了这个:
* e26b588 (HEAD -> feature) new commit
| * d568728 (master) c
| * 8714c7f b
|/
* f1aeb9a a
现在“新提交”包含对功能所做的所有操作,包括来自主控的合并结果。但是当然我们已经失去了合并 commit.
有没有办法压缩具有合并提交的提交?当没有任何合并提交时,我能够压缩,但当有合并提交时我不知道该怎么做。
喜欢这两个提交。
这里我在合并之前建立了一个像你这样的图表:
* bbcdb99 (HEAD -> feature) d
| * d568728 (master) c
| * 8714c7f b
|/
* f1aeb9a a
现在我将 master 合并到 feature 中:
* 264fc6c (HEAD -> feature) Merge branch 'master' into feature
|\
| * d568728 (master) c
| * 8714c7f b
* | bbcdb99 d
|/
* f1aeb9a a
好吧,如果我想将功能压缩到只有一个提交并擦除 合并提交,那么我不应该那样合并。我应该做一个壁球合并!然而,一切并没有丢失。我可以将软重置回 f1aeb9a 并进行新的提交:
$ git reset --soft f1aeb9a
$ git commit -m"new commit"
这给出了这个:
* e26b588 (HEAD -> feature) new commit
| * d568728 (master) c
| * 8714c7f b
|/
* f1aeb9a a
现在“新提交”包含对功能所做的所有操作,包括来自主控的合并结果。但是当然我们已经失去了合并 commit.