GitHubで、他のユーザーのリポジトリを自分のアカウント下にコピーする

GitHubでの「Fork」とは、他のユーザーのリポジトリを自分のアカウント下にコピーする行為を指します。これにより、そのリポジトリの完全なコピーを自分のGitHubアカウントに持つことができ、元のリポジトリ(親リポジトリとも呼ばれます)に影響を与えることなく自由に変更や実験を行うことができます。

Fork

Forkの主な目的と利用方法

  1. プロジェクトへの貢献: オープンソースプロジェクトに貢献する一般的な方法です。Forkを使ってリポジトリのコピーを作成し、ローカル環境で変更や機能追加を行い、その後変更を元のリポジトリに統合するためのPull Requestを送信します。
  2. 個人的な実験: 新しい技術を試したり、既存のコードを修正したりする場合に、安全な環境で自由に作業を行うことができます。元のリポジトリに影響を与えることなく、自己のリポジトリで必要なテストや開発を進めることができます。
  3. プロジェクトのバリエーションを作成: 元のプロジェクトから派生して、全く新しい方向性を持ったプロジェクトを開始することもできます。これは特に、元のプロジェクトのビジョンや目標に合わないかもしれない新しいアイデアを探求したい場合に有用です。

Forkのプロセス

  • Forkの実行: GitHubのリポジトリページにある「Fork」ボタンをクリックすると、そのリポジトリがあなたのアカウントにコピーされます。
  • クローンの作成: Forkしたリポジトリを自分のローカルマシンにクローンして、ローカルでの作業を開始します。
  • 変更のコミット: 必要な変更を行い、それらをコミットします。
  • 変更の公開: ローカルでの変更を自分のGitHubリポジトリにプッシュします。
  • Pull Requestの送信: 変更を元のリポジトリに統合するために、Pull Requestを送信します。

このように、ForkはGitHubで非常に重要な役割を果たし、開発者が協力しやすいプラットフォームを提供します。

作り方

Forkをクリック

リポジトリ名を指定後、Create

 自身のアカウントにコピーされます

GitHub Desktopにクローン

元のリポジトリに貢献するか、自分のリポジトリて管理するかを選べます

選択1. 親プロジェクトへの貢献を支援します。

  • 親プロジェクト を対象としたプルリクエストがプルリクエストリストに表示されます。
  • Issue は 親プロジェクトに作成されます。
  • GitHubで見る」をクリックすると、親プロジェクトがブラウザで開きます。
  • 新しいブランチは、親プロジェクトのデフォルトブランチを元に作成されます。
  • ユーザーや課題のオートコンプリートは親プロジェクトに準拠します。

選択2. 自分自身の目的のため

  • 自身のプロジェクト を対象としたプルリクエストがプルリクエストリストに表示されます。
  • 自身のプロジェクト にIssueが作成されます。
  • “View on GitHub" をクリックすると、ブラウザで 自身のプロジェクト が開きます。
  • 新しいブランチは、自身のプロジェクト のデフォルトブランチを元に作成されます。

Forkしたときのプルリクエスト

GitHubでForkしたリポジトリに対しては、元のリポジトリにプルリクエスト(Pull Request)を送るか、それとも自分のリポジトリとして独自に維持するかを選ぶことができます。

  1. プルリクエストを送る: これは、あなたが行った変更や改善を元のリポジトリの所有者に提案し、そのリポジトリに統合するための方法です。これは特にオープンソースプロジェクトへの貢献や、共同で作業するプロジェクトで一般的に用いられます。プルリクエストを送ることで、変更が元のリポジトリに反映され、プロジェクト全体に利益をもたらす可能性があります。
  2. 自分のリポジトリとして維持する: あなたがForkしたリポジトリを自分のプロジェクトや目的に合わせて変更し続ける場合、特にプルリクエストを送る必要はありません。この選択は、元のプロジェクトから独立して何か新しいものを作りたい場合や、個人的な使用や実験のために適しています。

選択基準

  • プロジェクトへの貢献意欲: オープンソースコミュニティに貢献したい場合や、元のプロジェクトの改善に関心がある場合は、プルリクエストを通じて貢献することを選ぶかもしれません。
  • プロジェクトの目的: 元のプロジェクトの目的やビジョンから逸脱する新しいアイディアを探求したい場合は、独自のリポジトリとして維持することが好ましいかもしれません。

どちらの選択もGitHubのフレキシビリティとコラボレーションの促進を示しており、ユーザーに多様なオプションを提供しています。