我已经构建了一个类似于合并之前的图表:
* bbcdb99 (HEAD -> feature) d
| * d568728 (master) c
| * 8714c7f b
|/
* f1aeb9a a
现在,我将主分支合并到功能分支:
* 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
merge --squash
一样),然后你可以使用交互式 rebase 或软重置进一步压缩。但你会失去“合并”历史记录;你不能压缩合并提交,这个想法实际上没有意义。 - matt