Git rebase squash 按哈希提交
Git rebase squash commits by hash
我有一个大约有 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 last n commits together 的副本。那显然不是我的问题。在我合并该分支中的另一个分支并同时获得所有这些提交之后,我想压缩仅在我当前分支上进行的最后 n 次提交。
首先请问一下你rebase的目的是什么?你想最终将你的提交推送到远程吗?
或者,您是否只想将您的提交放在首位并继续在本地工作?
无论哪种方式,我都建议您采取以下步骤:
- 从您的远程 master 分支开始创建一个新分支。这将使您获得远程主机的所有提交。
- 切换到新分支。
- 开始从您描述的旧分支中挑选您的提交。这将有助于了解您提交的哈希值。这将在您的提交下获得来自 master 的所有提交。请注意,您在新分支中提交的哈希值将被重写。
- 如果需要,您现在可以压缩您的提交并将其推送到远程。
下次需要同步到远程时记得做fetch和rebase。
我有一个大约有 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 last n commits together 的副本。那显然不是我的问题。在我合并该分支中的另一个分支并同时获得所有这些提交之后,我想压缩仅在我当前分支上进行的最后 n 次提交。
首先请问一下你rebase的目的是什么?你想最终将你的提交推送到远程吗? 或者,您是否只想将您的提交放在首位并继续在本地工作? 无论哪种方式,我都建议您采取以下步骤:
- 从您的远程 master 分支开始创建一个新分支。这将使您获得远程主机的所有提交。
- 切换到新分支。
- 开始从您描述的旧分支中挑选您的提交。这将有助于了解您提交的哈希值。这将在您的提交下获得来自 master 的所有提交。请注意,您在新分支中提交的哈希值将被重写。
- 如果需要,您现在可以压缩您的提交并将其推送到远程。
下次需要同步到远程时记得做fetch和rebase。