git pull non-fast-forward

$git push origin master ! [rejected] master -> master (non-fast-forward)

先获取远程仓库更新

$git fetch origin

将本地修改与远程仓库更新合并

$git merge origin YOUR_BRANCH_NAME

或者获取远程的更新与本地的修改合并

git pull origin YOUR_BRANCH_NAME

若未能解决,说明情况有点复杂了,可能需要回退版本。

1、若本地修改已经commit,则要回到修改前的版本

$git reset head^
或者
git reset head~1

Eclipse通过右键Team>Replace With>HEAD Revision,前提已经对修改做了备份。

2、版本回退后,将修改的内容暂存起来,更新成功后再次提交

$git add .
$git stash

eclipse没有这一步。

3、此时本地仓库比远程仓库落后一个版本,可顺利的pull远程仓库与本地仓库进行合并

$git pull origin master:master

注:根据实际情况调整分支。

4、此时本地版本跟远程仓库版本一致,将之前暂存的修改弹出:

$git stash pop

5、再次进行提交:

$add .
$commit - m "info"

6、最后将修改提交到远程仓库:

$git push origin master:master

git