在 Git 中,如果你想要合并本地的多个提交,可以通过以下几种方式来实现:
1. 合并相邻提交
如果你想要合并最近的几次提交,可以使用 git rebase
命令的交互模式:
git rebase -i HEAD~N
这里的 N
是你想要合并的提交数量。例如,如果你想要合并最近的 3 次提交,你可以使用:
git rebase -i HEAD~3
这将打开一个编辑器,列出最近的 3 次提交。你可以通过将除了第一个提交之外的其他提交行首的 pick
改为 squash
或 s
来合并提交。保存并退出编辑器后,Git 将合并这些提交。
2. 合并特定提交
如果你想要合并特定的提交,可以使用 git rebase
命令的交互模式,但是指定一个特定的提交作为起始点:
git rebase -i <commit-hash>
这里的 <commit-hash>
是你想要开始合并操作的提交的哈希值。在这个交互式界面中,你可以选择合并特定的提交。
3. 使用 git merge
合并特定提交
如果你想要将特定的提交合并到当前分支,可以使用 git cherry-pick
命令:
git cherry-pick <commit-hash>
这里的 <commit-hash>
是你想要合并的提交的哈希值。这个命令会将指定的提交应用到当前分支上。
4. 合并所有提交到一个特定的提交
如果你想要将所有的提交合并到一个特定的提交上,可以使用 git reset
命令将 HEAD 指向那个提交,然后使用 git merge
:
git reset --soft <commit-hash>
git merge --squash HEAD@{1}
这里的 <commit-hash>
是你想要合并所有提交到的那个提交的哈希值。--soft
选项会保留工作目录和暂存区的状态,--squash
选项会将合并的提交压缩成一个单一的提交。