在现有项目/回购中,我创建了一个新分支。
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搜索了答案,但坦率地说,我不理解它们。
有人知道如何解决这个问题吗?
答案 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