使用git commit --amend --no-edit能否将新改动合并到已推送的旧提交中?
问题解答
你提到的git commit --amend --no-edit完全可以实现将新旧改动整合为单个提交的需求,具体操作和注意事项如下:
本地操作步骤
要完成本地的提交合并,需要先暂存你遗漏的改动,再执行amend命令:
- 第一步:将需要合并的遗漏改动加入暂存区
单文件操作:git add <遗漏改动的文件路径>
全量改动操作:git add . - 第二步:执行合并提交命令
运行git commit --amend --no-edit,该命令会把暂存区的改动合并到上一次提交中,并且直接沿用原有提交的信息,不会弹出编辑框让你修改提交信息。
远程推送注意事项
因为你已经将原始提交推送到了远程仓库,执行amend操作会改变本地对应提交的哈希值,导致本地提交历史和远程不一致,需要根据分支场景选择后续操作:
- 如果你操作的是个人专属开发分支,无其他协作者使用:可以直接执行
git push --force强制推送,用本地修改后的提交覆盖远程的旧提交即可。 - 如果你操作的是多人协作的公共分支:不建议使用该方案,强制推送会打乱其他协作者的本地提交历史,引发不必要的冲突,这种场景直接新增提交推送是更合理的选择。
内容的提问来源于stack exchange,提问作者Piyush Chaudhary
相关产品推荐
相关产品推荐

