git合并了远程分支后,git对其分支进行重新设置

问题描述 投票:1回答:1

我对github上一个分支的PR显示了如下提交:

- "commit msg 1"
- "commit msg 2"
- "Merge remote-tracking branch 'upstream/dev' into this branch."
- "commit msg 3"
- "commit msg 4"
- "Merge remote-tracking branch 'upstream/dev' into this branch."

我想重新建立此分支的基础,并将带有消息"commit msg *"的所有四个提交压缩为一个提交。

首先,我尝试过:

git rebase -i <commit id of the first commit> 

它向我显示了包含许多其他提交的历史记录,这些历史记录是作为合并upstream/dev的结果而引入的;显示如下输出:

- pick "commit msg1"
- pick "someone else's commit 1"
- pick "someone else's commit 2"
- pick "someone else's commit 3"
- pick "commit msg2"
- pick "someone else's commit 4"
- pick "someone else's commit 5"
... 

我尝试将所有提交的pick设置为f,并且在解决合并冲突之后,它显示了分支中upstream/dev中所做的所有更改,就好像我正在重新实现它们。

我尝试过:-https://stackoverflow.com/a/5201642-https://stackoverflow.com/a/5190323

我知道我可以尝试merge --squash(例如https://stackoverflow.com/a/5309051/947889),但这会创建一个单独的分支。

为了简化说明,此处的示例提交已简化,实际分支包含〜250个提交,使用rebase时,它显示了〜300,000个提交,这是有道理的,因为它是整个过程中在活动存储库上实现的重要功能2年以上。

关于如何最好地将该分支重新建立为单个提交的任何建议?

git github version-control commit rebase
1个回答
0
投票

我认为本文会为您提供帮助,我过去使用过相同的技术。https://internalpointers.com/post/squash-commits-into-one-git

© www.soinside.com 2019 - 2024. All rights reserved.