如何使用git合并特定的分支?

时间:2016-11-13 19:46:38

标签: git github

注意:这与this question有某种联系,但它需要额外关注分支。

假设我有一个Github项目https://github.com/basjj/myproject.git,其中包含2个分支(masterfeature1)以及我计算机上的本地存储库。

名为blah的用户提出了拉取请求。他在https://github.com/blah/myproject.git上有3个分支(masterfeature1feature2)。

案例#1

我想在我的计算机上尝试他的feature2分支,稍加修改,然后将其合并到我自己的master中。 以下命令是否正确?

git checkout -b feature2
git pull https://github.com/blah/myproject.git   # it pulls only his feature2 branch or all?
# review the new files, make changes, etc.
git add .
git commit
git checkout master
git merge feature2

第二行(git pull...)是否拉出了他的所有分支或只是他的feature2? 还有别的:用户blah会出现在Github的contributor list中吗?

案例#2

我想在我的计算机上尝试他的feature1分支,稍加修改,然后将其合并到我自己的master中。 怎么做,鉴于我自己已经有feature1分支,我不想覆盖(!)?

1 个答案:

答案 0 :(得分:6)

所有分支都在自己的命名空间中,基于远程名称。

因此,最好为要试用的回购添加一个遥控器:

git remote add blah https://github.com/blah/myproject.git

然后你可以从blah

获取
git fetch blah

feature2创建blah/feature2

git checkout -b feature2 blah/feature2

对于feature1,您只需将blah/feature1合并到master即可 或者您可以创建自己的本地分支:

git checkout -b blah_feature1 blah/feature1