Git rebase squash通过哈希提交

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

我有一个大约10个提交的分支。其中3个是合并提交,将master与我的分支合并,并在每次之间添加~500个提交。有没有办法压缩当前分支上的提交?我的历史看起来像这样:

ad54ef86 My Commit 1
ad54ef86 Merge commit
ad54ef86 Others' Commits
....500 more others' commits
ad54ef86 My Commit 2
ad54ef86 My Commit 3
ad54ef86 Merge commit
ad54ef86 Others' Commits
....500 more others' commits
ad54ef86 My Commit 4
...

现在做git rebase -i HEAD~2000和搜索是很多工作。它有办法吗?

编辑:所以这个问题被标记为Squashing最后n次提交的副本。这显然不是我的问题。我想要在我的当前分支上进行最后n次提交,然后我合并该分支中的另一个分支并获得所有这些提交。

git rebase squash
1个回答
5
投票

首先,我会问你的rebase的目的是什么?你想最终将你的提交推送到遥控器吗?或者,您是否希望简单地将您的提交放在首位并继续在本地工作?无论哪种方式,我建议您采取以下步骤:

  1. 从远程主分支开始创建一个新分支。这将从远程主站获取所有提交。
  2. 切换到新分支。
  3. 从你描述的旧分支开始樱桃挑选你的提交。了解你提交的哈希值会有所帮助。这将在您的提交下获得master的所有提交。请注意,新分支中的提交的哈希值将被重写。
  4. 如果需要,您现在可以压缩并将提交推送到远程。

请记住下次需要同步到远程时进行提取和重新绑定。

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