這里先上stackoverflow的回答,基礎(chǔ)好的可以看這個。
接下來說我自己的理解肌毅,出現(xiàn)這個問題的原因是git提交改動到緩存,要push的時候不會將本地所有的分支都push掉蔚万,所以出現(xiàn)這個問題。我們應該告訴git提交哪個分支临庇。
這里有種特殊的情況是如果你是fork別人的倉庫再clone到本地的話反璃,即使git上只有一個主分支昵慌,他還是可能出現(xiàn)這個錯誤。那么我們就需要新建分支提交改動然后合并分支淮蜈。
接下來先創(chuàng)建一個新分支提交改動
$ git branch newbranch
然后輸入這條命令檢查是否創(chuàng)建成功
$ git branch
這時終端輸出
newbranch* master
這樣就創(chuàng)建成功了斋攀,前面的*代表的是當前你所在的工作分支。我們接下來就要切換工作分支梧田。
$ git checkout newbranch
這樣就切換完了淳蔼,可以$ git branch
確認下。然后你要將你的改動提交到新的分支上裁眯。
$ git add .$ git commit -a
此時可以$ git status
檢查下提交情況肖方。如果提交成功,我們接下來就要回主分支了未状,代碼和之前一樣。
$ git checkout master
然后我們要將新分支提交的改動合并到主分支上
$ git merge newbranch
合并分支可能產(chǎn)生沖突這是正常的析桥,雖然我們這是新建的分支不會產(chǎn)生沖突司草,但還是在這里記錄下。下面的代碼可以查看產(chǎn)生沖突的文件泡仗,然后做對應的修改再提交一次就可以了埋虹。
$ git diff
我們的問題就解決了,接下來就可以push代碼了娩怎。
$ git push -u origin master
新建分支的朋友別忘了刪除這個分支
$ git branch -D newbranch
如果想保留分支只是想刪除已經(jīng)合并的部分只要把大寫的D改成小寫的d就行了搔课。