2017-03-05 70 views
2

我正在使用功能分支,一旦我的請求被接受,它最終會合併到origin/develop我運行'git pull'但仍不能自動合併?

前推我的分支與起源,我跑:

$ git pull origin develop

推着我的變化origin/<feature-branch>後,Github上說,它「不能自動合併」,而這個分支是「3犯提前,落後發展「12。

我做錯了什麼,以及如何在推進我的更改之前確保我的本地分支與origin/develop保持同步,以便進行快進合併?

工作流

1)$ git clone <origin-url>

2)$ git checkout <feature-branch>

3)進行更改代碼,階段和提交它們

4)$ git checkout develop

5)$ git pull origin develop

6)$ git checkout <feature-branch>

6)$ git push origin <feature-branch>

+0

我無法弄清楚這裏發生了什麼。你用什麼實際的命令將你的更改推送到'origin/'?爲什麼Git會告訴你該分支與_develop_有多少分歧?它不應該是功能分支的報告。你能編輯你的問題,並列出你到達現在的位置的確切步驟嗎? –

+0

由於缺乏清晰的道歉信息 - 我添加了我的工作流程。 – Callum

+0

我實際上並沒有看到生成'Can not automatically merge'消息的步驟,AFAIK –

回答

1

這意味着,您的拉請求不能被合併到上游,而不必解決合併衝突上游所有者(S)。

這裏的解決方案是讓您從上游執行提取操作,然後解析來自上游的合併衝突。此時,如果理論上解決來自上游的衝突,然後創建拉取請求,則上游將能夠在您的拉取請求中自動合併而不會產生任何衝突(如果上游之間沒有提交,則您在本地解析上游合併衝突併合併到你的本地/ fork中,然後創建pull請求)。

解決方案

在Github的選擇分支選項卡,單擊合併視圖按鈕,你的頭叉向左拖動框,您的基本叉拖動到右邊框。點擊合併分支按鈕。選擇更改選項卡。選擇每個有衝突的文件。請參閱'<<<<<<<'在外部查看器中編輯文件以保持headfork代碼並將其添加到它。點擊文件保存。點擊提交按鈕。點擊同步。轉到Git網站並嘗試將基叉再次合併到頭叉。它應該不再顯示原始消息

1

與「混帳拉起源發展」,你只是拉從遠程分支發展的最新變化到你的本地開發分支,你不合併到您的功能的最新變化科。你必須通過使用git merge所以本地做:

git merge develop 
1

你可能需要做兩件事情,你是不是正在做:

  1. (可選)像帕特里克說,合併發展成功能分支。這將使你的分支加快發展,像你想要的。無論如何,這是一種很好的做法,可能會受到團隊工作流程的強制要求。

  2. 在推動功能之前拉動功能分支。這可能是什麼給你的錯誤。在合併開發之前,我會拉。