2017-04-25 54 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

相关问题