まず、ローカルのmaster
ブランチを変更しないでください。フィーチャブランチのみを作成する必要があります。今すぐあなたのリモート追跡ブランチupstream/master
がupstream
から最新の変更と同期さ
git remote add upstream <url-for-upstream-repo>
git fetch upstream
:あなたが変更されていないmaster
あなたの地元を続ける場合は、上流のレポから最新の変更を取得することができます。必要に応じて、あなたはまた、あなたがしたい場合は、お近くのmaster
を更新することができます。
git checkout master
git merge upstream/master
は今、あなたはupstream/master
のオフ機能ブランチを作成することができます。
あなたがから最新の変更を使用して機能ブランチを同期したい
git checkout -b feature upstream/master
upstream
の場合は、他の誰も機能ブランチで作業していない限り、rebase
を使用できます(そうしないと、変更履歴との再同期が強制されます)。あなたは通常、厄介歴史を作成せずに頻繁希望として機能ブランチを同期するためにそれを使用することができますので、彼らは、マージを作成しないためrebase
は、このワークフローの実際の理想的なコミットです:
git fetch upstream
git checkout feature
git rebase upstream/master
あなたは可能性もgit merge upstream/master
代わりにしかし、あなたはマージコミットの後ろに残すでしょう。時間の経過とともに、リベースの代わりにマージすることによって、より複雑な履歴を作成します。
プルリクエストを送信する準備ができたら、origin
にプッシュして、アップストリームmaster
に対してリクエストしてください。
オリジナルポスターは尋ね:
[I]別のリモートのマスターの完璧なレプリカである私のフォークにブランチを作成する方法はありますよ?
限り、ローカルmaster
(それはあなたがmaster
で直接機能ブランチであなたの仕事をして代わりにしてきたべきではない場合)upstream/master
から分岐していないし、ちょうどあなたの地元のmaster
にプッシュして、あなたのorigin
:また
git push origin master
、あなたのorigin/master
にリモート追跡ブランチupstream/master
をプッシュするrefspecを使用することができます。
git push origin upstream/master:master
'git pull upstream master:upstream-master'? – Ryan