2017-03-16 15 views
2

私は現在GitHubリポジトリupstreamに寄稿しており、そこから私はoriginをフォークしています。フォークされたレポを複製した後、upstreamまたはoriginからリモートブランチをチェックアウトする必要があるかどうか混乱します。リモートブランチxをoriginからチェックアウトしてから、後でupstreamから引き出すと、upstreamのブランチxの新しい変更が、リモートブランチxにマージされ、originからチェックアウトされますか?そうでなければ、代わりにupstreamからリモートブランチxをチェックアウトします。このブランチをプッシュしたいときは、宛先レポとしてoriginを指定する必要がありますか?私がgit push -u origin xの場合、ブランチxのトラッキングリモートをoriginにリセットしていませんか?Git/GitHub:リモートブランチを起点または上流からチェックアウトしますか?

答えて

0

私はoriginからリモートブランチxをチェックアウトし、後で新しい変更がupstreamxを分岐するxorigin

あなたドンからチェックアウト私のリモートブランチにマージされます、upstreamから引く場合upstreamから引き出すと、あなただけを取得できます。

次に、あなたは、あなたがoriginにプッシュ強制upstream/master
の上にあなたのブランチxをリベース。

は "Pull new updates from original GitHub repository into forked GitHub repository"

最初のプッシュはgit push -u origin xでも参照してください。
それが(それは他の人が起源/ X上で作業されていない)された場合には、他のプッシュは、あなたがupstream/masterの上にxをリベースする場合を除き、git push簡単ですgit push --force

+0

私はまだまだGit初心者ですが、git pullのポイントは何ですか?私の理解では、 'git pull'は本質的に' git fetch'とそれに続く 'git merge'です。 「上流」から引き離さないと言っているならば、「起源」が「起源」のクローンよりも最新の状態になることは決してないので、「起源」から引き離すのは理にかなっていません。 – Emerson

+0

@Emerson git pull merges(非常に面白くない原点からフェッチし、origin/xをxにマージします)。アップストリームから更新したいときは、マージするのではなく、リベースする(つまり、新しいベースの上にコミットを再生する)。これにより、将来のマージ/プルリクエストは簡単に適用されます。 – VonC

+0

@エマーソンあなたがフォークであり、あなたがそれを扱っている(つまり押している)唯一の人だから、あなたは起点から引っ張らない。 – VonC