Git rebase squash通过哈希提交

时间:2018-06-11 13:50:06

标签: git rebase squash

我有一个大约有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次提交,然后我合并该分支中的另一个分支,并且同样获得所有这些提交。

1 个答案:

答案 0 :(得分:5)

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

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