Git:我得到了非快进更新消息,但当我'git pull'时它说我是最新的?

时间:2018-05-28 23:42:30

标签: git github

在现有项目/回购中,我创建了一个新分支。

git checkout master
git pull origin master
git checkout -b 'my_new_branch'

然后我完成了我的工作,这只是在1个文件上更改了1行。然后我想把它推到Github,这样我就可以创建一个拉取请求。

git add <file>
git commit -m 'made changes'
git push

但我接到消息

To prevent you from losing history, non-fast-forward updates were rejected
Merge the remote changes (e.g. 'git pull') before pushing again.

我假设与我改变的那个文件存在合并冲突,这很奇怪 - 我不认为我会得到合并错误,因为我没有'合并'它,只是把它推到Github所以我可以创建拉取请求。

无论如何,我跑了

git pull

git merge origin/master

并没有出现任何问题。

我不确定该怎么做。我显然用Google搜索了答案,但坦率地说,我不理解它们。

有人知道如何解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

  

在再次推送之前合并远程更改(例如&#39; git pull&#39;)。

我认为,在结帐'my_new_branch'之后,git push分支在'my_new_branch'之前处于远程状态(git checkout -b&#39; my_new_branch&#39;)。并且remote 'my_new_branch'有一些新的更改不在本地&#39; my_new_branch&#39;。

所以,git pull后跟git push应该有效(这里也适合你)。

您可以看到要确认的日志历史记录:

$ git checkout 'my_new_branch'
$ git log
# can you see any commits that came from remote