私が作った Notion Blog の easy-notion-blog はさまざまなカスタマイズが可能です。
カスタマイズするためにはリポジトリをフォークする必要がありますが、フォークすると本家のアップデートを自分で取り込む必要が出てきます。
この記事では、easy-notion-blog をフォークしてカスタマイズをされている方に向けて、フォーク後に Git を使って本家の変更を取り込む方法を説明します。
まずフォークについて復習しておきましょう。
リポジトリのフォークとは、当時のリポジトリの状態を自分のリポジトリとしてコピーすることを言います。
ここで「当時の」と付けているのは、フォークした後にフォーク元に変更があっても(コミットが追加されても)、フォークした自分のリポジトリには反映されないからです。
これは、エクセルのファイルをコピーして作業した場合に、コピー元に変更が反映されないことをイメージしていただけるとわかりやすいと思います。
![Image in a image block](/_astro/7e89911e-7aa2-421c-9afe-49d1e082c992.CGbXYqSd_Z1kbf3u.webp)
リポジトリをフォークした後も、フォーク元となった本家のリポジトリでは改良のためにコミットが追加されていきます。
しかし、コピーしたエクセルのファイルに自動でオリジナルの変更が反映されないのと同じように、フォークしたリポジトリに本家の変更は反映されません。
![Image in a image block](/_astro/d0708a99-a812-467d-bc6a-873950f6f8fc.D-A6J7WA_2tShwz.webp)
ソフトウェアは日々セキュリティ対応や機能追加のために進化しています。
easy-notion-blog もそうで、新機能の追加だけでなくNext.js のアップデートやセキュリティ対応など、さまざまな重要なアップデートを行っています。
次は、本家のアップデートを取り込む方法を説明します。
本家の変更を取り込むには、まず、本家のリポジトリをリモートリポジトリとして手元の Git に教えてあげる必要があります。
リモートリポジトリとしては origin が一番慣れ親しんでいると思いますが、origin 以外にも登録することができます。
![Image in a image block](/_astro/6607dd77-9296-4603-ae85-752d73fba68e.Cge0JZqu_2kz2yB.webp)
リポジトリの URL は手打ちしなくとも GitHub からコピーすることができます。
![Image in a image block](/_astro/3ff3c7fb-4cc4-4633-a844-f477f2dff280.CHG_15KW_adGMS.webp)
本家を root という名前でリモートリポジトリに登録するには git remote add
を使って次のようにします。
git remote add root git@github.com:otoyo/easy-notion-blog.git
現在登録されているリモートリポジトリの一覧を確認するには git remote -v
を使います。
git remote -v
不要になったリモートリポジトリの登録を削除するには git remote remove
を使います。
git remote remove <名前>
本家をリモートリポジトリに登録したら、その名前を使って変更履歴を取得します。
![Image in a image block](/_astro/54f7b6de-1a97-4480-9d06-04f49f39244f.BAyrV-s4_r4B9T.webp)
本家の変更履歴を取得するには git fetch
を使って次のようにします。
git fetch root
これで本家の最新の変更履歴を取得することができました。
次は、取得した変更履歴をもとに実際に変更を取り込んでいきます。
まずは GitHub で本家リポジトリを開いて、取り込みたいコミットを探します。Pull Requests などから探すと良いでしょう。
取り込みたいコミットが見つかったらコミットIDをコピーします。
コミットIDは GitHub 上のボタンを押してコピーすることができます。
![Image in a image block](/_astro/1d7dedc2-dcf5-4764-be9c-963b17236a82.CVX6KCvQ_Z1OjSva.webp)
対象のコミットをローカルのブランチに取り込むには git cherry-pick
を使って次のようにします。
git cherry-pick <コミットID>
![Image in a image block](/_astro/16ff7932-627e-44fe-af58-a01248ac88e0.D2IUgOAb_16vJVc.webp)
これでローカルのブランチに対象のコミットを取り込むことができました。
忘れずに自分のリポジトリ(origin) にpushしてデプロイしましょう。
以上です。
この記事では easy-notion-blog をフォークしてカスタマイズをされている方に向けて、フォーク後に Git を使って本家の変更を取り込む方法を説明しました。
コメントを送る
コメントはブログオーナーのみ閲覧できます