注意:这与this question有某种联系,但它需要额外关注分支。
假设我有一个Github项目https://github.com/basjj/myproject.git,其中包含2个分支(master
和feature1
)以及我计算机上的本地存储库。
名为blah
的用户提出了拉取请求。他在https://github.com/blah/myproject.git上有3个分支(master
,feature1
,feature2
)。
我想在我的计算机上尝试他的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中吗?
我想在我的计算机上尝试他的feature1
分支,稍加修改,然后将其合并到我自己的master
中。 怎么做,鉴于我自己已经有feature1
分支,我不想覆盖(!)?
答案 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