私はこのような状況にあります。github からレポをフォークしました。別のブランチでローカルにいくつかの変更を加えました。次に、それをマスターとマージしました。次に、それを github リポジトリにプッシュしました。プルリクエストも送っています。
誰かがメイン リポジトリのファイルに変更を加えました。それを取得して、そのファイルに変更を加えたいと思います。そのプルリクエストを個別に送信したい。
ローカル リポジトリから開始するにはどうすればよいですか?
別のブランチでローカルにいくつかの変更を加えました。次に、それをマスターとマージしました
してはいけないこと: 分岐したアップストリーム リポジトリに存在しないブランチからプル リクエストを行う必要があります。そうすれば、上流の (元の) リポジトリと常に同期を
保つことができます。master
master
詳細については、「プル リクエストに関するいくつかのヒント」を参照してください。
つまり、次のことを意味します。
github からレポをフォークしました。ローカルの別のブランチでいくつかの変更を加えました
そのブランチをプッシュし、そのブランチからプル リクエストを作成します (ターゲット: を使用upstream repo/master
) 。
次に、アップストリームからプルしてマスターを更新できます (これには触れません。アップストリーム リポジトリからローカル クローンにコミットを追加し、マスターをフォークにプッシュして最新の状態に保つだけです)。
次に、更新されたマスターの上にローカル ブランチをリベースし、すべてがまだ機能していることを確認し、そのブランチのフォークに--force をプッシュします。
魔法のように、既存のプル リクエストは、強制的にプッシュしたブランチからの新しいコミットで自動的に更新されます。
詳細に:
cd /local/path/to/your/clone
git remote add upstream https://github.com/user/original_repo
git fetch upstream
git checkout master
# reset master to upstream master
git reset --hard upstream/master
git checkout yourBranch
git rebase master
# check that everything works
git push -f origin master
git push -f origin yourBranch
# Make your pull request from your branch in your fork on GitHub
それが完了すると、パッチの将来の進化は次のことを意味します。
# update master with upstream master new commits
git checkout master
git pull upstream master
# rebase your local branch
git checkout YourBranch
git rebase master
# check that everything still works
git push origin master
git push origin yourBranch
# your pull request will AUTOMATICALLY BE UPDATED!
# nothing to do on GitHub