GitHubで他のアカウントのリポジトリをコピーするフォークとその概要

みなさん、こんにちは!
タカハシ(@ntakahashi0505)です。

ノンプログラマー向けにGitHubを組織で活用する方法をシリーズでお伝えしています。

前回の記事はこちら。

GitHubでOrganizationにリポジトリやユーザーを追加する方法
ノンプログラマー向けにGitHubを組織で活用する方法をシリーズでお伝えしています。今回は、GitHubでOrganizationにリポジトリを作成する方法とユーザーを招待して追加する方法についてお伝えします。

Organizationにリポジトリやユーザーを追加する方法をお伝えしました。

ところで、そのように追加したユーザーは、Organizationのリポジトリでの開発にどのように参加できるでしょうか。

そのためには「フォーク」というGitHubの素敵な機能を用います。

ということで、今回はGitHubで他のアカウントのリポジトリをコピーするフォークとその概要についてお伝えします。

では、行ってみましょう!

スポンサーリンク

Organizationのリポジトリのユーザー権限について

Organizationのユーザーの基本的な権限

さて、Organizationへのユーザーは、Organization内のリポジトリについて、どのような操作を行うことができるのでしょうか?

つまり、どのような権限を持っているかということですね。

それを調べるために、Organizationページの「Settings」を開いてみましょう。

OrganizationのSettings

左側のメニューから「Member privileges」を選択すると、「Member repository permissons」という設定画面に入ります。

ちなみに「privilege」というのは特権、「repository permission」はリポジトリの許可という意味がありますね。

さて、ここで「Base permissions」というのが、Organization内のリポジトリに対するメンバーの基本的な権限を設定する部分です。

OrganizationのBase permissons

デフォルトでは「Read」になっていますね。

つまり、OrganizationのメンバーはOrganizationのリポジトリについて閲覧の権限があるということです。

逆に、以下のような書き込みを伴う操作は行うことができません。

  • ブランチを作成する
  • プッシュをする
  • マージをする

メンバーがリポジトリの開発に参加するためには

Organizationに追加されたメンバーが、Organizationのリポジトリに参加したい場合、どうすればよいでしょうか?

ひとつの方法は、メンバーの基本的な権限「Base permissions」を「Write」にするという方法です。

これでもちろんすべてのOrganization内のリポジトリにプッシュをすることができるようになりますが、ただマージもできてしまいます。

ケースによっては、できる限りスキルや責任があるメンバーのみ、マージができるようにしたいということもありますよね?

もうひとつの方法として「フォーク」という方法を使う方法があります。

以下で詳しく紹介していきます。

フォークを使って開発に参加する

フォークとは

フォークとは、他のアカウント配下のリポジトリを、自分のアカウント配下にコピーをすることです。

フォークしたリポジトリは、自分のアカウント配下にコピーされたものですから、それに対しては、自由にブランチを作成したり、変更をプッシュしたりすることが可能です。

他人のコード…いじりたい放題です…!

そして、さらにフォークの素晴らしい点は、その変更したものを、元のリポジトリに対してプルリクエストをすることができる、ということです。

「プルリクエスト」とはについては、以下の記事もご覧くださいね。

GitHubのレビューとプルリクエストについて、およびその作成方法
ノンプログラマー向け技術同人誌の制作プロジェクトとその制作方法についてシリーズでお伝えしています。今回は、GitHubでプッシュしたブランチについてプルリクエストをする方法について紹介します。

それで、元のリポジトリのWrite権限があるいずれかのユーザーが、それをマージしてくれれば、元のリポジトリでその変更が採用されるということになります。

つまり、元のリポジトリに書き込み権限がない場合は、以下の手順で元のリポジトリの開発に参加可能です。

  1. 自分のリポジトリにフォークをする
  2. フォークをしたリポジトリに変更を加える
  3. プルリクエストをする

Organizationのプライベートリポジトリをフォーク可能にする

Organizationのリポジトリについて、閲覧しかできないメンバーが開発に参加したい場合も同様の方法で開発に参加できます。

Organizationのリポジトリをフォークをして、自分のアカウント配下で変更後、プルリクエストを行うのです。

しかし、Organizationの場合、パブリックリポジトリはそのままでフォークができますが、プライベートリポジトリについてはフォークができない設定になっています。

ですから、その設定を変更する必要がありますね。

Organizationのプライベートリポジトリをフォークできるようにするには、先ほどの「Member repository permissions」にある「Repository forking」の設定を変更します。

「Allow forking of private repositories」にチェックを入れましょう。

Organizationのプライベートリポジトリをフォークできるようにする

これで、Organizationのプライベートリポジトリもフォーク可能となります。

まとめ

以上、GitHubで他のアカウントのリポジトリをコピーするフォークとその概要についてお伝えしました。

次回、実際にフォークの機能を使ってプルリクエストを行ってみましょう。

GitHubでフォークしたリポジトリからプルリクエストを作成する方法
ノンプログラマー向けにGitHubを組織で活用する方法をシリーズでお伝えしています。今回は、GitHubでフォークしたリポジトリで更新作業を行った上でプルリクエストを作成する方法をお伝えします。

どうぞお楽しみに!

連載目次:ノンプログラマー向けGitHubを組織で活用する方法

会社などの組織で使用するプロジェクトを個人アカウントでリポジトリを管理していると、リポジトリの管理やユーザーの権限の変更など、いろいろと面倒です。そのような場合に便利な、GitHubのOrganizationという仕組みとその活用法をノンプログラマー向けに紹介していきます。
  1. GitHubでリポジトリを組織管理するためのOrganizationとそのつくり方
  2. GitHubでOrganizationにリポジトリやユーザーを追加する方法
  3. GitHubで他のアカウントのリポジトリをコピーするフォークとその概要
  4. GitHubでフォークしたリポジトリからプルリクエストを作成する方法
  5. GitHubでフォークしたリポジトリを削除してフォークし直す方法
  6. GitHubで課題を管理する便利機能Issueとその作成方法
  7. GitHubでIssueについて解決してクローズするまでの手順
タイトルとURLをコピーしました