2011-03-17 86 views
0

这是事件发生的顺序:如何将我的提交与上游更改合并回来?

  1. commiting改变

  2. 混帐拉

  3. 化解矛盾(这使得所有的文件改变状态,再次修改)

  4. 提交修改所有文件(所以我将有1个最终提交)

  5. git push(或上传),我收到以下消息:

    无法上传更改,您的分支位于origin/master后面。上传避免合并冲突之前,请重订的变化:git的重订原产地/主

如果我做git rebase origin/master那么以后它看起来像当我做git branch 我没有分支是在所有。

所以,重新绑定所有文件后,再次修改,所以我再次提交。 然后我做git checkoutmaster然后所有的过程从1开始。

所以很烦人。任何想法如何推这个代码?

回答

2

当你固定的冲突,正确git add你刚刚固定的文件,但你真正需要的只是一个普通的git commitgit commit --amend。您需要在此处进行合并提交,该合并提交表示树的状态,其中您的更改均为master,而远程更改为origin/master。否则,您只是修改之前的提交,如果您尝试将其推送到远程,它将无法从提交图形中看到您的提交包含已存在的历史记录。 (换句话说,你的提交可以“快进”远程分支)。

如果你真的不想有任何合并提交,你可以做git pull --rebase而不是git pull

0
  • 提交更改到不同的分支(topic
  • 从中央储存库
  • 衍合,其中将包括固定的冲突拉(变基topicmaster
  • 重置master是其中topic
  • master

您的更改只能在推送完毕后才能应用,因此您必须将更改变更为该更改。