我有以下内容,只是想知道处理这个问题的最佳方法是什么:我编辑了一些文件并试图检查新的更改。远程回购也已被其他人更新。
]$ git push
To git@mygitaccount.org:some_project
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'g git@mygitaccount.org...some_project'
To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes before pushing again. See the 'Note about
fast-forwards' section of 'git push --help' for details.
然后收到了这条消息:
Pull is not possible because you have unmerged files.
Please, fix them up in the work tree, and then use 'git add/rm <file>'
as appropriate to mark resolution, or use 'git commit -a'.
P.S:我按照建议做了git pull然后git push,但仍然得到相同的消息。
答案 0 :(得分:2)
正如您所猜测的那样,您无法推送,因为其他人已经推了,您必须先检索他们的更改。
第二条消息是由于这些更改与您的本地更改相冲突。要了解哪些文件存在冲突,您可以运行git status
。
解决所有冲突后,您可以按照消息git commit -a
中的说明运行,以创建一个您可以推送的合并提交。
更一般地说,您可以将pull
替换为fetch
后跟merge
。优点是,fetch
之后您可以运行gitk --all
来轻松查看您刚刚检索到的内容,从而决定您希望如何处理它。