錯誤提示:
Cheetah@xxxx MINGW64 /e/Projs/enft/data/cv_key_frame (master) $ git push To github.com:AnthonyGIS/video_frame.git ! [rejected] master -> master (non-fast-forward) error: failed to push some refs to 'git@github.com:AnthonyGIS/video_frame.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. Cheetah@xxxx MINGW64 /e/Projs/enft/data/cv_key_frame (master)
問題(Non-fast-forward)的出現原因在於:git倉庫中已經有一部分代碼,所以它不允許你直接把你的代碼覆蓋上去。
方法1
強推,即利用強覆蓋方式用你本地的代碼替代git倉庫內的內容。
如果遠程倉庫是剛建的,沒有代碼 或者你確定遠程倉庫中的代碼沒有用了,可以這樣操作,盡量避免這種操作方法。
git push -f
方法2
先把git的東西fetch到你本地然后merge后再push。
$ git fetch $ git merge
如果在git merge的時候出現
fatal: refusing to merge unrelated histories
可以使用,git pull origin master --allow-unrelated-histories,來處理一下。
繼續git merge
若,出現:
fatal: You have not concluded your merge (MERGE_HEAD exists). Please, commit your changes before you merge.
是我們沒有提交當前的變化, git add .,git commit -am "提交信息",然后再來一次git merge,然后ok.
最后 git push。(git push origin master)。
提示Already up-to-date. 就好了,上傳完成。
參考
git 推送錯誤 ! [rejected] master -> master (non-fast-forward)解決方案