0%

git遇到的坑

解决用git push origin master时出现的问题
不知道小伙伴们在使用git push origin master时有没有遇到下面的问题,今天我遇到了,原因一般是相同的,下面详细分析一下

报错内容:
To github.com:/
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to ‘git@github.com:***/***’
hint: Updates were rejected because the tip of your current branch is behind
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.

大致翻译为:
错误:无法将一些引用推送到’git@github.com:****** / Demo.git’
提示:由于当前分支的尖端位于其远程对应的后面,因此更新被拒绝。 合并远程更改(例如’git pull’),然后再次推送。 有关详细信息,请参见“ git push –help”中的“关于fast-forwards的注意事项”。

这个报错的原因是因为远程repository和本地的repository有冲突,下面有3种解决办法:

按上面报错内容中所给的提示先用git pull之后再用git push
$ git pull origin master
$ git push origin master

使用强制push的方法,但是这会使远程修改丢失,一般是不可取的,尤其是多人协作开发的时候
$ git push origin master -f

如果不想merge远程和本地修改,可以先创建新的分支,然后再push
$ git branch [name]
$ git push origin [name]