git push錯誤failed to push some refs to的解決方法


! [rejected] master -> master (non-fast-forward)

error: failed to push some refs to 'git@github.com:yangchao0718/cocos2d.git
hint: Updates were rejected because the tip of your current branch is behin
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.

問題說明

本質原因:因為 遠程庫與本地庫不一致造成的,那么我們把遠程庫同步到本地庫就可以了
一般問題:發生在本地庫提交到遠程庫的時候。
一般原因:當我們在github版本庫中發現一個問題后,你在github上對它進行了在線的修改;或者你直接在github上的某個庫中添加readme文件或者其他什么文件,但是沒有對本地庫進行同步。這個時候當你再次有commit想要從本                        地庫提交到遠程的github庫中時就會出現push失敗的問題。
我的問題:本地新建一個文件夾,打開git bash,輸出git init初始化一個本地庫,然后git pull了遠程庫,修改后提交。
我的原因:遠程庫pull下來后,就是一個完整的庫了,而我當初新建了個庫,而且用這個本地庫(與puul下來的不是一個),和遠程庫同步。
我的解決方法:進入pull下來的庫的文件夾,打開git bash,並push,就可以了。
 
解決方案:這個問題是因為遠程庫與本地庫不一致造成的,那么我們把遠程庫同步到本地庫就可以了。
使用指令:git pull --rebase origin master
這條指令的意思是把遠程庫中的更新合並到本地庫中,-rebase的作用是取消掉本地庫中剛剛的commit,並把他們接到更新后的版本庫之中。
如圖:

 

 

下面我用圖形象的解釋下錯誤情況的發生和解決

gitpush失敗2
git pull –rebase origin master意為先取消commit記錄,並且把它們臨時 保存為補丁(patch)(這些補丁放到”.git/rebase”目錄中),之后同步遠程庫到本地,最后合並補丁到本地庫之中。
gitpush失敗3
接下來就可以把本地庫push到遠程庫當中了。
gitpush失敗4

大部分摘抄網絡


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM