forkしたリポジトリをupstreamと同期する方法
こんにちは。
組織のリポジトリを fork してから、自分の作業環境で開発をするとき、ありますよね。
今回は、fork したリポジトリの、upstream の変更を自分の環境に同期する方法をお伝えします。
方法は、全部で 3 つあります。
-
GitHub 上で、ボタンを使って同期する
-
コマンドラインを使って同期する
-
GitHub CLI を使って同期する
今回は、1,2 の方法を紹介します。
GitHub 上で、ボタンを使って同期する
GitHub で、fork した自分のリポジトリを開きます。
こちらの写真の、Sync fork
ボタンを押します。
upstream に変更がある場合には、下の画像のような表示になりますので、「Update branch」ボタンを押せば同期ができます。
同期をした後は、いつも通りターミナルで
git fetch
を実行して変更の同期をすれば完了です!
upstream に変更がない場合は、以下のような画面が出ます。
この場合、origin と upstream の間で差分がないため、何もしなくて OK です。
コマンドラインを使って同期する
ボタンをぽちぽちするだけでは物足りない!
コマンドを打ちたくなるのがエンジニアの性ですよね。
もちろん、コマンドラインを用いて同期する方法もあります。
やり方は、こちらもそんなに難しくありません。
まず、cd
コマンドでプロジェクトディレクトリに移動します。
git fetch upstream
コマンドを実行した後、
git merge upstream/main
コマンドを実行します。
そのあと、VSCode の場合は「変更の同期」ボタンを押せば(git push すれば)完了です。
ちょっと解説
コマンドラインを用いて同期する方法について、少し解説します。
upstream のリポジトリを fork し、自分の環境で clone して作業する場合、その 3 つの環境の位置関係を図にすると以下のようになります。
upstream から、自分のリポジトリ(origin)に fork し、
そこ(自分のリポジトリ)から local にgit clone
するというイメージです。
そして、先ほど説明した各コマンドの役割は、以下の図のようになります。
git fetch upstream
コマンド:upstream の内容を、自分の local PC の環境に取り込む役割
git merge upstream/main
コマンド:自分の local PC の内容を、origin ブランチに merge する
『変更の同期』ボタン
:merge した内容を、origin に push して、反映させる
upstream,origin,local の位置関係がややこしかったので、図にまとめてみました。
参考になれば幸いです。
おわりに
最後までご覧いただきありがとうございます。
PC ロールでは、テクノロジーに関する情報をまとめて発信しています。
また、おすすめのガジェットについて幅広く紹介するガジェロールもあります。
ガジェットやソフトを使うエンジニア・クリエイターのみなさん、ぜひご覧ください。