Git push提示Everything up-to-date但远程仓库无新增提交如何解决
问题根因
- 执行
git commit -m "test"时并未生成新提交,终端输出nothing to commit, working directory clean说明当时工作区所有变更都已提交完成,本地master分支领先远程origin/master的1个提交为哈希9ef6d1d、提交信息为pushing to private repo的历史提交 - 推送时返回
Everything up-to-date是因为本地master分支未绑定对应的远程上游分支,Git默认无法匹配到需要推送的目标分支
解决步骤
- 绑定上游分支并推送
执行如下命令,将本地master分支绑定到远程origin的master分支,同时推送未同步的提交:
git push -u origin master
执行完成后刷新GitHub仓库页面,即可看到提交已同步到远程。
- 处理历史不匹配问题
如果上述命令推送失败,是因为远程仓库的初始提交(仅包含README的提交)和本地提交历史没有公共父节点,确认远程仓库没有需要保留的内容后,执行强制推送覆盖远程分支:
git push -f origin master
- 验证推送结果
推送完成后执行以下命令,确认远程分支已包含本地最新提交:
git log origin/master --oneline
如果输出内容中包含9ef6d1d pushing to private repo记录,说明推送成功。
注意事项
- 强制推送会直接覆盖远程分支的所有内容,操作前请确认远程仓库没有未备份的重要内容
- 完成上游分支绑定后,后续提交推送直接执行
git push即可,无需再指定分支参数
内容的提问来源于stack exchange,提问作者Mona Jalal
相关产品推荐
相关产品推荐

