我有一个功能分支,其中包含一些提交(见下文)。自分支以来,一些提交也已添加到 master。
所以我将 master
merge 到 feature
分支。
git checkout feature
git merge master
这会在 feature
分支上产生以下日志历史记录:
* E (HEAD) merging master into feature
|\
| * D feature commit 2
| |
| * C feature commit 1
* | B master commit 2
|/
* A master commit 1
实际上,功能路径上的提交数量很大 (100+),我想将它们全部压扁。
有没有办法只压缩功能分支上的提交,同时保留 master
行上的提交?
最佳答案
是的,你可以。所以你想把你问题中的提交图变成这个新图:
* E (HEAD) merging master into feature
|\
| * D feature commit (squashes 1 and 2)
* | B master commit 2
|/
* A master commit 1
过程:
- 确保您的工作树是干净的。没有未提交的更改、没有暂存的更改、没有未跟踪的文件。
- 确保您在功能分支上。
git reset --hard *功能分支上 D 的哈希值*
git reset --soft *A 在 master 上的哈希值*
git commit
包含您想要的消息。git merge master
关于git - merge 后压缩 Git 提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33512202/