如何推送我的提交与上游更改合并?

时间:2011-03-17 18:30:59

标签: git

这是一系列事件:

  1. 提交更改

  2. git pull

  3. 解决冲突(使所有文件更改状态再次修改)

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

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

      

    无法上传更改,您的分支落后于origin / master。请在上传之前重新定义更改以避免合并冲突:git rebase origin / master

  6. 如果我git rebase origin/master,那么之后看起来像git branch 我根本没有分店。

    因此,在重新定位后,所有文件都会再次修改,所以我再次提交。 然后我执行git checkout master,然后所有过程从1开始。

    太烦人了。知道怎么推这个代码吗?

2 个答案:

答案 0 :(得分:2)

修复冲突后,您正确git add您刚刚修复过的文件,但实际上您只需要一个简单的git commit不是 { {1}}。您需要在该点进行合并提交,表示树的状态,其中包含git commit --amend的更改和master的远程更改。否则,您只是修改了之前的提交,如果您尝试将其提交到远程,则无法从提交图中看到您的提交包含已存在的历史记录。 (换句话说,您的提交将“快进”远程分支。)

如果您真的不想进行任何合并提交,可以origin/master代替git pull --rebase

答案 1 :(得分:0)

  • 将您的更改提交到其他分支(topic
  • 从中央存储库拉
  • Rebase,其中包括修复冲突(将topic重新定位到master
  • master重置为topic
  • 的位置
  • 推送master

您的更改只能在已推送的内容后应用,因此您必须将更改重新定义到该更改。