问题
我合并了一个未在上次提交时更新的主分支。
我做什么
我在主人
中合并了一个分支git merged BRANCHNAME
冲突
Automatic merge failed; fix conflicts and then commit the result.
git commit -a -m "Resolved conflicts while merging email-fix branch"
然后我试图将所有人推向原始主人,但它说:
! [rejected] master -> master (non-fast-forward)
我该如何解决这个问题?
答案 0 :(得分:1)
你可以这样做:
git pull --rebase
,以便在最新的主分支上重播您的合并git push
(应该顺利进行)另一个选择是强制推动,这意味着失去了远程大师的近期历史:不是一个好主意。
Git FAQ中提供了两种备选方案,但只提倡简单的git pull
git push
man page提及git pull --rebase
:
例如,假设您和其他人在同一个提交
X
开始,并且您构建了一个导致提交B
的历史记录,而另一个人构建了一个导致提交A
的历史记录。历史看起来像这样:
B
/
---X---A
或者,您可以使用“
X
”在B
之上A
和git pull --rebase
之间重新定义更改,然后将结果推回原位。 rebase将创建一个新的提交D
,在X
之上构建B
和A
之间的更改。
B D
/ /
---X---A
同样,使用此提交更新
A
将快进并且您的推送将被接受。