someone/foobar
私がフォークしたGitHubにリポジトリがあるとしましょうme/foobar
。
別のリモートを追加して定期的にそこからプルすることを忘れずに、新しいコミットを親リポジトリから直接フォークにプルするにはどうすればよいですか?
目標は次のとおりです。
git pull
親リポジトリからフェッチするgit push
すべてを私のフォークに送る
someone/foobar
私がフォークしたGitHubにリポジトリがあるとしましょうme/foobar
。
別のリモートを追加して定期的にそこからプルすることを忘れずに、新しいコミットを親リポジトリから直接フォークにプルするにはどうすればよいですか?
目標は次のとおりです。
git pull
親リポジトリからフェッチするgit push
すべてを私のフォークに送る回答:
フォークされたGitリポジトリーme / foobarを開きます。
比較をクリックしてください:
通知が届きます。
比較するものは何もありません。
someone:masterは、からのすべてのコミットで最新の状態です me:masterです。比較のためにベースを切り替えてみてください。
クリック このページでベース切り替えるをてください:
次に、分岐した日の後に、誰か/ foobarに対して行われたすべてのコミットを確認できます。
クリック プルリクエストの作成]をます。
プルリクエストにタイトルと説明を入力し、[ プルリクエストを作成 ]をクリックします。
次のページで、ページの一番下までスクロールし、プル要求のマージをクリックしますと確認マージを。
Gitリポジトリ me / foobarが更新されます。
編集:リベースオプションは次のとおりです。
Edit
ボタンをクリックして手動でbase fork
to me/foobar
とhead fork
toを切り替えることをお勧めしsomeone/foobar
ます。このように、それは非常に明確です
git remote set-url origin git@github.com:someone/foobar
git remote set-url origin --push git@github.com:me/foobar
ただし、注意点が1つあります。
これは、フォークを変更するのが1人だけの場合に最適です。
ただし、他の人と共有している場合は、フォークからプルする必要があります。その場合はがあります。、別のリモートが唯一のソリューションです。
編集:
実際には、警告を取り除くことができ ますgit pull git@github.com:me/foobar
。
どちらを選択するかは、覚えやすい方です。
そのために、GitHub Web UIを使用するかなり単純な方法を使用しました。
me/foobar
)「プル」アプリ自動セットアップと、忘れているソリューションを。フォークのデフォルトブランチをアップストリームリポジトリと同期します。
URLにアクセスし、緑色の[インストール]ボタンをクリックして、自動同期を有効にするリポジトリを選択します。
ブランチはGitHubで直接1時間に1回更新されます。ローカルマシンでは、ローカルコピーが同期していることを確認するためにマスターブランチをプルする必要があります。
別のリモートを追加せずにそれを行う方法はわかりませんが、私はフォークしたレポをupstream
リモートとして常に追加するので、簡単に行うことができます。
git branch -a|grep remotes/upstream| while IFS="/" read p r b; do echo Syncing $r/$b to origin/$b; git push origin $r/$b:refs/heads/$b; done
これにより、すべてのブランチが同期されます。新しいrefs/heads/
ブランチを作成する(既存のブランチのみを更新するために削除します)。分岐のいずれかが分岐すると、その分岐に対してエラーがスローされます。