我們提交代碼git push
后出現如下錯誤提示
$ git push -u origin master
To https://gitee.com/xxxxx/vue_shop.git
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'https://gitee.com/xxxxx/vue_shop.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
原因
Git倉庫中已經有一部分代碼,所以它不允許你直接把你的代碼覆蓋上去。
遠程倉庫和本地倉庫存在差異。
一般都是因為你在碼雲創建的倉庫有ReadMe文件,而本地沒有,造成本地和遠程的不同步,
解決方法:
方法一、同步
1、git pull origin master --allow-unrelated-histories //把遠程倉庫和本地同步,消除差異
2、重新add和commit相應文件
3、git push origin master
4、此時就能夠上傳成功了
如果只是因為本地沒有ReadMe文件,那么就在本地生成一個
git pull --rebase origin master //本地生成ReadMe文件
git push origin master
方法二:強推
即利用強覆蓋方式用你本地的代碼替代git倉庫內的內容
git push -f origin master
該命令會強制上傳覆蓋遠程文件,慎用
方法三、
先把git的東西fetch到你本地然后merge后再push
git fetch
git merge