Webエンジニア向けプログラミング解説動画をYouTubeで配信中!
▶ チャンネル登録はこちら

【ITニュース解説】A Beginner's Guide to Forking and Syncing GitHub Repositories 📝

2025年09月23日に「Dev.to」が公開したITニュース「A Beginner's Guide to Forking and Syncing GitHub Repositories 📝」について初心者にもわかりやすく解説しています。

作成日: 更新日:

ITニュース概要

GitHubでリポジトリをフォーク後、自分のPCにクローンして作業を開始。オリジナル(Upstream)の最新変更を自分のフォークに取り込み、自身の作業ブランチに反映させてプッシュするまでの一連の手順を、システムエンジニアを目指す初心者に向け、分かりやすく解説する。

ITニュース解説

GitHubを使った開発において、オリジナルのプロジェクト(リポジトリ)のコピーを作成し、それを常に最新の状態に保つための「フォーク」と「同期」という重要な概念とその具体的な手順を解説する。システムエンジニアを目指す上で、他の開発者のプロジェクトに参加したり、自身のプロジェクトを公開したりする際に不可欠なスキルとなる。

まず、この一連の作業を進めるには、自分のコンピューターにGitがインストールされていること、GitHubのアカウントを持っていること、そしてVisual Studio Code(VSCode)が使える状態にあることが前提となる。これらの準備ができていれば、以下のステップで作業を開始できる。

この解説で登場するいくつかの専門用語について、事前に理解しておく必要がある。 「ローカル」とは、自分のコンピューター上に保存されているリポジトリのコピーを指す。 「リモート」とは、GitHubのようなオンラインサービス上にホストされているリポジトリのバージョンを意味する。 「オリジン」は、GitHub上に存在する「自分のフォーク」を指すデフォルトのリモート名である。つまり、自分がオリジナルリポジトリからコピーして作成した、自分専用のリポジトリを指す。 そして「アップストリーム」とは、自分がフォークを作成した「オリジナルのリポジトリ」のことである。

最初のステップは、リポジトリをフォークすることだ。これは、オリジナルのリポジトリを自分のGitHubアカウントにコピーする操作にあたる。オリジナルのリポジトリのページにアクセスし、「Fork」ボタンをクリックし、自分のアカウントを選択することでフォークを作成できる。この際、全てのブランチのコピーが必要であれば、メインブランチのみをコピーするオプションの選択を解除する。これにより、オリジナルのリポジトリの完全なコピーが自分のGitHubアカウント内に生成され、自分専用のフォークページに移動する。

次に、そのフォークしたリポジトリを自分のローカルコンピューターにクローンする。自分のフォークページで「<> Code」ボタンをクリックし、表示されるWeb URLをコピーする。VSCodeのターミナルを開き、リポジトリを保存したいフォルダに移動した後、「git clone」コマンドとコピーしたURLを貼り付けて実行する。これにより、GitHub上のフォークが自分のコンピューターにダウンロードされる。クローンが完了したら、新しく作成されたリポジトリのフォルダに「cd」コマンドで移動する。

作業を進める前に、新しいブランチを作成することが推奨される。これは、メインブランチを直接変更すると、予期せぬ問題や他の変更との衝突(コンフリクト)が生じる可能性を避けるためである。VSCodeターミナルで「git branch」と入力すると、現在どのブランチにいるか確認できる。通常は「main」ブランチにいるはずである。その状態で「git checkout -b 新しいブランチ名」と入力すると、新しいブランチが作成され、すぐにそのブランチに切り替わる。これ以降の作業は、この新しいブランチで行う。

次に、アップストリームのリモートを追加する。これは、オリジナルのリポジトリからの更新を自分のローカルリポジトリに取り込むために必要な設定である。VSCodeターミナルで「git remote -v」と入力すると、現在設定されているリモートの一覧が表示される。フォークしたばかりの状態では、「origin」(自分のフォーク)しか表示されないはずだ。ここに「git remote add upstream オリジナルリポジトリのURL」というコマンドを使って、オリジナルのリポジトリを「upstream」という名前で追加する。再度「git remote -v」を実行すると、「origin」と「upstream」の両方が表示され、設定が正しく行われたことが確認できる。

新しいブランチに切り替わっていることを確認したら、そのブランチで実際にコードの編集作業を行う。ファイルを変更するたびに、「git status」で変更されたファイルを確認し、「git add ファイル名」または「git add .」(全ての変更されたファイルをステージングする)で変更をステージングする。ステージングされた変更は、「git commit -m "コミットメッセージ"」というコマンドでコミット(変更履歴の記録)する。コミットメッセージは、その変更がどのような内容であるかを簡潔に説明するものである。

オリジナルのリポジトリ(アップストリーム)で新しい変更が発生した場合、その変更を自分のローカルリポジトリに反映させる必要がある。まず、未コミットの変更がある場合は、全てステージングしてコミットしておく。次に、自分のローカルの「main」ブランチに切り替える。その状態で「git fetch upstream」を実行すると、アップストリームリポジトリの最新の変更が自分のローカルリポジトリに取得される。この操作は、取得するだけで自分のブランチにはまだ変更が適用されない。

取得したアップストリームの変更を、自分のローカルの「main」ブランチに同期する。自分のローカルの「main」ブランチにいることを確認し、「git merge upstream/main」を実行する。これにより、アップストリームの「main」ブランチの最新の内容が、自分のローカルの「main」ブランチに統合され、ローカルの「main」ブランチが最新の状態になる。

最新の状態になったローカルの「main」ブランチの変更を、自分の作業中のブランチに取り込む。自分の作業ブランチ(例: 「example-branch」)に切り替え、「git merge main」を実行する。これにより、ローカルの「main」ブランチで行われた最新の変更が、自分の作業ブランチにも反映される。この際、マージコミットメッセージを編集するファイルが開くことがあるので、内容を確認して閉じればマージが完了する。もし競合(コンフリクト)が発生した場合は、それを解決するための手順が必要となる。

ローカルでの作業と、アップストリームからの変更を取り込んだ自分の作業ブランチの状態を、GitHub上の自分のフォークにプッシュする。全ての変更がステージングされ、コミットされていることを確認する。自分の作業ブランチにいる状態で、「git push origin 新しいブランチ名」と入力して実行すると、ローカルの作業ブランチの内容が、GitHub上の自分のフォークにアップロードされる。

最後に、自分のローカルの「main」ブランチの更新を、GitHub上の自分のフォークの「main」ブランチにもプッシュする。ローカルの「main」ブランチに切り替え、「git push origin main」を実行する。これにより、ローカルの「main」ブランチがアップストリームの最新状態になっているため、その最新状態が自分のGitHub上のフォークの「main」ブランチにも反映される。

これらの手順を定期的に行うことで、自分のフォークをオリジナルのリポジトリと常に同期させ、共同作業を円滑に進めることができる。このプロセスを習得することは、GitとGitHubを使った現代の開発において非常に重要な基礎となる。

関連コンテンツ

関連IT用語

関連ITニュース