当git push origin master时候,出现如下问题

[rejected] master -> master (non-fast forward)
error: failed to push some refs to 'git@github.com:me/me.git'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes before pushing again.  See the 'non-fast forward'
section of 'git push --help' for details.

因为我原来创建了一个mvc分支,远程github上也有了一个mvc分支,而且mvc分支里的版本没有master里的高。所以果断使用 git branch -d mvc ,但是提示说,本地分支没有合并,无法删除。想着反正master分支上的已经使用git reset hard commit-id 恢复过来了,代码并没有丢失。所以此时使用git branch -D mvc 强制删除了分支。


既然本地分支都删除了那远程github上的mvc分支也就没有用了。所以 git remote rm mvc 把远程的mvc分支也删除掉。


然后,git fetch origin master(取回origin主机的master分支,所取回的更新,在本地主机上要用”远程主机名/分支名”的形式读取。比如origin主机的master,就要用origin/master读取。)。

这样就将远程master分支拉倒本地,然后 git merge origin/master(使用git merge命令或者git rebase命令,在本地分支上合并远程分支。此时的本地分支是master,本地读取远程分支要用 origin/master,与本地的合并,之后git add ,git commit ,git push 提交吧。就OK了。