2014-09-29 85 views
14

我有2個分支機構 - masterdevelopGit的衝突請求

我一直在做一些引入請求在我develop分支,其中包含5個項目,其中相同的項目在master數。

然而,有人做了一些提交和pushed在更多的項目到master分支,因此現在它有8個項目。

正如develop我拉請求仍未批准/合併,每當我試圖更新我拉的要求,我收到消息,指出This pull request can't be merged. You will need to resolve conflicts to be able to merge,問我要做到以下幾點:

git fetch origin master 
git checkout develop 
git merge FETCH_HEAD 
git commit 
git push origin HEAD 

這種情況發生在我「推出」我的提交之後,讓我感到困惑。然後我意識到它要求我重新添加並重新提交另外3個新項目。那麼這是否意味着我必須確保這兩個分支之間的項目和內容應該始終如一?我一直使用git pull/fetch,但是有沒有更好的方法讓我確定?

+0

不,它要求您合併。您似乎對分支的工作方式感到困惑 - 請參閱[文檔中的相關章節](http://git-scm.com/book/en/Git-Branching) – remram 2014-09-29 20:31:31

+0

@remram可能我確實感到困惑。但即便如此,爲什麼它會要求我將主人合併到開發中呢?通常這對我來說是另一回事 – dissidia 2014-09-30 02:14:44

+0

如果你在開發中合併master,那麼github將能夠自動合併在master中開發。 – remram 2014-10-06 18:26:34

回答

17

這意味着GitHub想要將您的PR分支合併到master,但它不能,因爲存在衝突。正如您在問題評論中所討論的那樣,處理此問題的最佳方法(通常是)在命令行上將master分支合併到develop中。這會向你顯示衝突並要求你解決它們。一旦你完成並推動合併,PR將使用GitHub上的綠色按鈕合併回master

可能只是合併你的deploy分支master(我認識到聽起來有點明智)。在這種情況下,你會完全繞過PR。您必須關閉PR「unmerged」,然後單獨手動將合併提交推送到master

通過做第一種方式,

  1. 通過合併掌握在GitHub上,使用PR做出更好的審計跟蹤;
  2. 您在合併後爲您的團隊提供了一個查看代碼的機會,然後登錄到master;和
  3. 如果您有自動測試(例如Travis CI或CircleCI)來檢查PR,您也可以讓他們有機會運行合併的代碼。
+0

那對我來說有意義,特別是在PR分支的情況下,它與我一直在做的事情完全不同,在那裏我的'develop'分支被合併到'master'中,就像你一樣已經提到。 – dissidia 2014-10-08 02:35:42

+0

沒錯。如果您有一個'develop'分支定期合併到'master',那麼您最好不要從該分支發出pull請求。如果您願意,您可以將特定主題分支的pull請求轉換爲'deploy',然後在準備好移動一組更改時將'deploy'與命令行中的'master'合併。 – Peeja 2014-10-08 17:21:53

+0

這個鏈接很好地概述瞭如何實現Peeja合併master的開發語句:https://confluence.atlassian.com/bitbucket/resolve-merge-conflicts-704414003.html – Paul 2017-01-26 17:14:43

0

我使用eclipse-git接口解析它,如下所述。

1-保留'dev'分支中的所有更改並將它們推送到git。

2-結帳到'主'分支並提取所有更改。 3轉到'Git倉庫視圖 - >展開本地文件夾'並右鍵單擊'主'分支並點擊'合併'選項。

4-它將打開顯示所有與'Git staging'窗口中的紅點衝突。

5-現在右鍵單擊每個紅點,然後單擊 - >'用git索引替換'。那個紅點現在會消失。

6-對所有紅點進行此操作後,從右側按鈕提交合並。

7完成。