2011-03-17 85 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

您的更改只能在推送完畢後才能應用,因此您必須將更改變更爲該更改。