2017-04-25 56 views
0

拉請求我有一個分支基於主機(開發者),我一直在這個分支的另一個開發者2個提交掌握,所以我現在是2師承諾,但10分在我的分支上提交。如何當主變了合併上的Git分支 - 需要發出GitHub上

上主的2個提交實際上是不相干的我,因爲我已經修改了他們涉及到的代碼,所以我的分支更是最新的。我不得不在GitHub上發出pull請求來合併我的(開發人員)分支,但就目前而言,我的分支會在GitHub上引起衝突,所以我正在尋找一種乾淨的方式來整理我的分支,以便我可以在GitHub上發出pull請求,而不會產生衝突。

任何Git的專家在那裏對我有什麼建議嗎?

+0

'git fetch; git rebase origin/master'。您將解決衝突,以便您的更改適用於當前的主控狀態並可以合併。 –

回答

0

而在開發商分支,嘗試git pull origin master,解決衝突(如果有的話),然後提交,推動更改開發商分支。

+0

謝謝Alex! – Smitthhy

0

除了合併(拉)如已經指出的那樣,你也可以「變基」你的分支,以便它「看起來像」它是在遠程分支的當前位置的上開發:

git fetch <remote-repo> git rebase <remote-repo>/master

+0

感謝您的建議,只是爲了清楚,因爲我的遠程是GitHub的主人,我的本地分支是開發人員,從GitHub拉下來的主人分支出來,您能否明確指示這些命令,以便我確定我要去哪裏請做好嗎?即當我開始這些命令時,我應該檢查什麼? – Smitthhy

+0

問題是遙控器可能有_any_名稱。如果你克隆(如從github回購),它是原產地,但它不是強制性的。如果你在本地創建了一個空的repo,然後添加了github remote,它可以有任何名稱。如果你的github遠程被稱爲'origin',那麼它會(已經檢出你的本地分支,你想'更新',無論是在origin/master上):'''git fetch origin; git的變基原產/ master''' – eftshift0

+0

好,謝謝,我有點明白了,我克隆從GitHub回購協議,遠程Git -v顯示原點,我做了git的結帳-b開發人員創建我的分支,在它的工作,有人其他人在GitHub上的主人工作,所以我假設,當我在開發分支,如果我git獲取起源; git rebase origin/master這會將我的開發人員提交到最新的主提交(其他開發人員所做的)的末尾,然後我可以git commit -am「提交消息」讓我的分支準備推送直到GitHub,併發出pull請求。 - 非常感謝您的時間 – Smitthhy

0

有git的櫻桃挑選功能。您可以使用提交ID將其他分支中的提交提交給分支。細節

What does cherry-picking a commit with git mean?

+0

謝謝你,我會看它,我需要得到更多熟悉的Git,一直停留在SVN的時間太長了。 – Smitthhy

+0

cherry-pick是版本控制的瑞士軍刀(它甚至存在於svn中,具有合併-c選項)。事實上,git-rebase(這是另外一個非常強大的工具)就是基於它。 – eftshift0

相關問題