Git 如何合并多个 commit
快速答案
合并最近 3 个提交:
git rebase -i HEAD~3
在打开的列表里保留第一个 pick,把后续提交改成 squash 或 fixup。
squash 和 fixup
| 命令 | 说明 |
|---|---|
squash |
合并提交,并允许编辑合并后的 message |
fixup |
合并提交,并丢弃该提交的 message |
使用建议
- 合并提交最好在推送前完成。
- 如果分支已经被别人基于其开发,不要随意改写历史。
- 合并后运行测试,确认整理历史没有引入冲突错误。
常见坑
HEAD~3表示最近 3 个提交,数字选错会漏掉或包含多余提交。- rebase 冲突后要
git add再git rebase --continue。 - rebase 后推送远程可能需要
--force-with-lease。
相关内容
相关内容
- Git 如何修改 commit message Git 如何修改 commit message:最后一次提交用 git commit --amend,更早提交用 git rebase -i,已推送共享分支要谨...
- Git 如何修改 remote Git 如何修改 remote:用 git remote -v 查看当前地址,再用 git remote set-url origin 新地址修改远程仓库。
- Git 如何删除远程分支 Git 如何删除远程分支:用 git push origin --delete branch-name 删除远程分支,再用 git fetch --prune...
- Git 如何恢复删除文件 Git 如何恢复删除文件:未提交删除用 git restore,已提交删除先找到删除前提交,再从指定提交检出文件。
- Git 如何找回丢失 commit Git 如何找回丢失 commit:先用 git reflog 找到 HEAD 历史位置,再创建恢复分支或 reset 回目标提交。
- Git 如何重命名分支 Git 如何重命名分支:本地用 git branch -m 改名,已推送分支还需要推送新分支、删除旧远程分支并设置 upstream。