在GIT中合并分支后压缩提交

5

您好,我有一个分支stable,其中包含其他分支合并的提交。其结构如下:

提交历史记录:

Commit 1 - Branch 1 commit 1 ------------- Hash Code 1
Commit 2 - Branch 2 commit 1 ------------- Hash Code 2
Commit 3 - Branch 2 commit 2 ------------- Hash Code 3
Commit 4 - Branch 2 commit 3 ------------- Hash Code 4
Commit 5 - Branch 3 commit 1 ------------- Hash Code 5

分支1,2,3已被删除,已与稳定版本合并。是否有办法在提交历史记录中压缩第3次和第4次提交?

期望结果:

Commit 1 - Branch 1 commit 1 ------------- Hash Code 1
Commit 2 - Branch 2 commit 1 ------------- Hash Code 2
Commit 5 - Branch 3 commit 1 ------------- Hash Code 5

当我执行git rebase -i时,它会在重新基础时给出noop屏幕。 enter image description here

1
你可以执行 git rebase -i 来进行交互式变基 - Chandan Rai
它给了我noop。我也附上了截图。 - Akshay
1
你可能需要正确指定想要将哪个分支变基到哪个分支上。请使用 git rebase --help 命令来了解更多信息。 - Mort
1个回答

6
您可以使用git rebase -i执行交互式变基。
git rebase -i HEAD~4

更改

pick  commit 1
pick  commit 2
pick  commit 3
pick  commit 1

转换成这样

pick  commit 1
s     commit 2
s     commit 3
pick  commit 1

保存更改并执行git push -f


另外,你能告诉我假设这个分支是受保护的,并且不必要的提交来自于一个拉取请求。然后该分支被删除和合并了。有没有办法可以修改拉取请求,从而消除不必要的提交? - Akshay
一个PR总是从“源”分支到“目标”分支,一旦在合并到“目标”后删除了“源”,PR就不存在了,不能更改。任何后续更改都必须进入单独的PR。 - Chandan Rai
这是正确的,但是有一个选项可以恢复分支,在那个分支中我恢复并压缩了额外的提交,但是我无法将不需要的提交压缩到受保护的合并分支中,因为我想要的PR没有起作用。 - Akshay

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接