Git錯誤non-fast-forward后的沖突解決
當要push代碼到git時,出現提示:
error:failed to push some refs to ...
Dealing with “non-fast-forward” errors
From time to time you may encounter this error while pushing:
問題(Non-fast-forward)的出現原因在於:git倉庫中已經有一部分代碼,所以它不允許你直接把你的代碼覆蓋上去。
於是你有2個選擇方式:
1,強推,即利用強覆蓋方式用你本地的代碼替代git倉庫內的內容
git push -f
2,先把git的東西fetch到你本地然后merge后再push
$ git fetch
$ git merge
這2句命令等價於
$ git pull
可是,這時候又出現了如下的問題:
上面出現的 [branch "master"]是需要明確(.git/config)如下的內容
[branch "master"]
remote = origin
merge = refs/heads/master
這等於告訴git2件事:
1,當你處於master branch, 默認的remote就是origin。
2,當你在master branch上使用git pull時,沒有指定remote和branch,那么git就會采用默認的remote(也就是origin)來merge在master branch上所有的改變
如果不想或者不會編輯config文件的話,可以在bush上輸入如下命令行:
$ git config branch.master.remote origin
$ git config branch.master.merge refs/heads/master
之后再重新git pull下。最后git push你的代碼就可以了。
window下cmd里面的命令:
F:\myproject>git config branch.master.remote origin
F:\myproject>git config branch.master.merge refs/heads/master
之后再重新git pull下。最后git push你的代碼就可以了。