git push 报错! [rejected] master

338 阅读1分钟

报错操作复原

  • 先本地写代码
  • git init 初始化本地仓库
  • git remote add origin xxx 关联远程仓库
  • git add .
  • git commit -m "xxx"
  • git pull (可能你这步都没有)
  • git push -u origin master
  • 报错: ! [rejected] master

报错原因

因为远程仓库代码和本地代码有差异:如 readme.md 文件

解决

方法1: 直接删除 .git 文件,然后按下面流程走

  • git init 初始化本地仓库
  • git remote add origin xxx 关联远程仓库
  • git pull origin master --allow-unrelated-histories (消除远程和本地代码差异)
  • git add .
  • git commit -m "xxx"
  • git push -u origin master
  • 成功

方法2: 接着报错后面走,执行下面代码

  • git pull origin master --allow-unrelated-histories (消除远程和本地代码差异)
  • 重新add和commit相应文件
  • git push -u origin master
  • 成功

总结

  • 方法1解决是最简单,最稳的;
  • 方法2可能因为你之前多余的操作导致中间还有报错,需要你自行解决;
  • 在执行git pull origin master --allow-unrelated-histories时,可能会有冲突,如你本地有了readme.md,远程也有时,你需要把本地的代码复制一份出去类似的操作,然后把本地和远程重复的文件干掉(删除本地文件),这个错误终端会提示出来.删除重复文件后再重新执行git pull origin master --allow-unrelated-histories就没问题了,再 git status 下,看看仓库是否有需要提交的,有就add+commit,没有就直接git push -u origin master