仅存main分支时如何推送变更?推送报错已尝试多种方法仍未解决
解决Git推送报错(已删除超前master分支仍存在问题)
先确认本地与远程的分支状态
- 运行
git branch -a查看所有本地和远程分支,确认远程仓库是否真的没有master分支残留 - 运行
git remote show origin检查远程仓库的分支关联配置,看是否仍有master分支的追踪记录
- 运行
清理无效的远程追踪分支
- 如果远程已删除master但本地还有对应的追踪分支,执行
git remote prune origin自动清理所有无效的远程追踪分支 - 也可以手动删除本地的master追踪分支:
git branch -d -r origin/master
- 如果远程已删除master但本地还有对应的追踪分支,执行
核对本地与远程main分支的提交差异
- 运行
git log --oneline origin/main..main查看本地main比远程超前的提交 - 运行
git log --oneline main..origin/main查看远程main是否有本地没有的提交(如果存在,说明可能有其他人推送过变更)
- 运行
修复推送问题
- 若确认本地main分支是正确的最新版本,且远程没有其他未同步的变更,可尝试安全强制推送:
git push origin main --force-with-lease - 如果确定不会覆盖他人提交,也可以用普通强制推送:
git push origin main --force - 若本地main分支的追踪关系异常,重新设置关联:
git branch --set-upstream-to=origin/main main
- 若确认本地main分支是正确的最新版本,且远程没有其他未同步的变更,可尝试安全强制推送:
内容的提问来源于stack exchange,提问作者Abdul Samad
相关产品推荐
相关产品推荐

