如何将遗漏文件添加到Git最后一次提交并同步到远程仓库
原因说明
你执行的amend命令只会修改本地的最近一次提交,改动此时仅存储在你的本地Git仓库中,尚未同步到远程仓库,所以访问远程仓库看不到新增的文件。
解决步骤
首先先确认你要修改的那一次原始提交,是否已经提前推送到了远程仓库,分两种情况处理:
- 情况1:原始提交还未推送到远程
直接执行常规推送操作即可:git push origin 你的分支名(比如main/master) - 情况2:原始提交已经推送到了远程
amend操作会生成一个全新的提交(commit hash和旧提交完全不同),和远程已存在的旧提交会产生冲突,此时需要分场景处理:- 如果是你个人独立使用的分支,执行强制推送即可覆盖远程的旧提交:
git push -f origin 你的分支名 - 如果是多人协作的公共分支,不推荐强制推送,很容易覆盖其他协作者的提交内容。这种情况更建议你放弃amend的修改,直接新增一次提交补充遗漏的文件,执行常规的add、commit、push操作即可。
- 如果是你个人独立使用的分支,执行强制推送即可覆盖远程的旧提交:
补充说明
git commit --amend的本质是删除本地的最近一次提交,将当前暂存区的改动和原来的提交内容合并后生成全新的提交,只要原提交已经同步到远程,就必须通过强制推送才能完成远程同步。
内容的提问来源于stack exchange,提问作者BadRobot
相关产品推荐
相关产品推荐

