2016-11-13 5 views
2

注:これは何とかthis questionにリンクされていますが、ブランチにはさらに注意が必要です。特定のブランチをgitとマージするには?

のは、私が2本の枝(masterfeature1)と私のコンピュータ上のローカルリポジトリとのGithubプロジェクトをhttps://github.com/basjj/myproject.gitあるとしましょう。

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 

2行目(git pull...は)彼の枝のすべてを引っ張ったり、唯一の彼のfeature2していますか?
その他:ユーザーblahはGithubのcontributor listに表示されますか?

ケース#2

私は、自分のコンピュータ上で、ここで彼のfeature1ブランチを試してみたい、わずかにそれを変更し、私自身のmasterにそれをマージします。 私はすでにfeature1ブランチを持っているので、私は上書きしたくありません。

答えて

6

すべてのブランチは、リモート名に基づいて独自の名前空間にあります。

だから、それはあなたが試してみたいレポのためのリモートを追加することが最良である:

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

次にあなたが

何とかから
git fetch blah 

を取得し、blah/feature2からあなたfeature2を作成することができます。

git checkout -b feature2 blah/feature2 

feature1については、blah/feature1からmasterまで
それとも、独自のローカルブランチを作成することができます。

git checkout -b blah_feature1 blah/feature1 
+0

おかげで多くのことを。 'すべてのブランチは、リモート名に基づいて、独自の名前空間にあります。これはどういう意味ですか、もう少し説明できますか? 'git fetch blah'は、ユーザーの3つのブランチをすべてダウンロードしますか? – Basj

+0

@Basjはい、それは3つのブランチをすべてダウンロードして '.git/refs/remotes/blah'に保存します(したがって名前空間の概念) – VonC

+0

他のもの:' case#1'の私のコマンドも正しいですか?私のコマンドで貢献者に表示されますか?あなたと一緒に? – Basj

関連する問題