GitHub でレポをフォークする
この記事では、GitHub でフォークを作成および管理するプロセスの概要を説明します。 フォークは、GitHub アカウントで管理するリポジトリのコピーです。
フォークを使用すると、必ずしも元のリポジトリを変更することなく、プロジェクトに変更を加えることができます。 変更をフェッチするか、フォークを通じて元の所有者に変更を提案することで、フォークを更新できます。
GitHub でレポをフォークする
GitHub でフォークを作成すると、次のことができます。
- 元のリポジトリへの変更を提案するプル リクエストを元の所有者に送信します。
- フォークを同期して、通常は
アップストリーム
と呼ばれる元のリポジトリからの変更で更新します。
誰かのプロジェクトに変更を提案する
フォークを使用するのに最適なシナリオは、誰かのコードにバグが見つかった場合です。 問題をログに記録する代わりに、次のことが簡単にできます。
- リポジトリをフォークします。
- バグを修正します。
- 所有者にプル リクエストを送信します。
プロジェクトをアイデアの出発点として使用する
私たちのプロジェクトの出発点として、別の人のプロジェクトを使用することもできます。 良い例は、API フレームワークを開発する場合です。
REST API の例を見てみましょう。 GitHub には多数のボイラープレート/テンプレート プロジェクトがあります。
これらのほとんどは公開リポジトリであり、フォークして変更を開始できます。
GitHub でどのようにフォークしますか?
リポジトリをフォークする
フォークするリポジトリを見つけたら、次の簡単な手順に従ってください。すぐに起動して実行できます。
-
GitHub.com で、フォークするリポジトリを開き、右上隅に移動して、[フォーク] をクリックします。
-
フォークの所有者を選択し、名前を付けます。 フォークの簡単な説明を追加することもできます。 さらに、デフォルト ブランチのみをコピーできます。
-
満足したら、
Create Fork
をクリックしてプロセスを終了します。 これにより、アカウントにリポジトリのコピーが作成されます。
フォークを作成したら、フォークをマシンに複製して変更を開始する必要があります。 フォークのクローンを作成すると、ファイルがマシンのローカル リポジトリに移動します。
-
GitHub のフォークに移動し、[コード] をクリックします。
-
このセッションでは、HTTPS を使用してレポを複製します。 URL を HTTPS の下にコピーします。
-
Git Bash を開き、複製する作業ディレクトリに切り替えます。 リポジトリのクローンを作成するには、コピーしたリンクで
git clone
コマンドを使用します。
フォークからのすべてのファイルとブランチがローカル マシンにコピーされ、開発を開始できます。
元のリポジトリでフォークを最新の状態に保つことを常にお勧めします。 次の手順に従って、フォークを元のリポジトリと同期するように git を構成できます。
-
GitHub で元のリポジトリに移動し、[コード] をクリックします。 (前のセッションと同じ)。
-
HTTPS URL をコピーして、Git Bash を開きます。
-
次に、フォークのクローンを含むディレクトリに切り替え、
git remote -v
コマンドを実行して、どのリモートがフォークで構成されているかを確認します。 -
以下に示すように、リンクで
git remote add upload
コマンドを使用できるようになりました。$ git remote add upstream https://github.com/app-generator/flask-corona-dark.git
フォークを同期するには、git fetch upload
コマンドを実行してアップストリームからフェッチします。
これで、アップストリームの master
ブランチからの変更をローカル フォークの master
ブランチにマージできるようになりました。 続行する前に、ローカルの master
ブランチにチェックアウトされていることを確認してください。 この場合の master
は、フォークのデフォルト ブランチです。
ローカル リポジトリに独自のコミットがある場合、競合に対処する必要があります。 そうでない場合は、早送りマージを行います。
これにより、上流の変更で master
ブランチが更新されます。 残っているのは、変更を GitHub のフォークにプッシュすることです。
John is a Git and PowerShell geek. He uses his expertise in the version control system to help businesses manage their source code. According to him, Shell scripting is the number one choice for automating the management of systems.
LinkedIn