GitHubでリポジトリをPublic(公開)/Private(非公開)に切り替える方法
GitHubのリポジトリには、主に次の2種類の公開範囲があります。
- Public(パブリック):誰でも見ることができる
- Private(プライベート):許可された人だけが見ることができる
作成時に設定した公開範囲は、あとから変更することもできます。
この記事では、
Public → Private
および
Private → Public
へ変更する方法を説明します。
- 1. PublicとPrivateの違い
- 2. Public → Private に変更する
- 3. Private → Public に変更する
- 4. Private → Public は特に注意
- 5. 「削除してからPublicにすれば大丈夫」とは限らない
- 6. Public → Private にすれば過去の公開がなかったことになる?
- 7. StarsやWatchersにも注意
- 8. GitHub FreeでもPrivateリポジトリは作れる
- 9. Organizationでは変更できない場合がある
- 10. GitHub Desktopから変更できる?
- 11. 授業で使うならどちらがよい?
- 12. まとめ
- 13. 参考
PublicとPrivateの違い
まず基本的な違いを確認しておきましょう。
| 設定 | 閲覧できる人 |
|---|---|
| Public | インターネット上の誰でも閲覧可能 |
| Private | リポジトリの所有者や、アクセスを許可されたCollaboratorなど |
Publicリポジトリは、GitHubにログインしていない人からも基本的に閲覧できます。
一方、Privateリポジトリは、アクセス権を持っているユーザーだけが閲覧できます。
Public → Private に変更する
たとえば、
授業中はチーム内だけで使用したい
まだ公開したくない制作途中のプログラムがある
といった場合は、Privateに変更できます。
Step 1:対象のリポジトリを開く
GitHubで公開範囲を変更したいリポジトリを開きます。
Step 2:「Settings」を開く
リポジトリ上部のメニューから、
Settings
をクリックします。
通常は、
Code
Issues
Pull requests
Actions
Projects
Security
Insights
Settings
のように並んでいます。
画面幅によっては「Settings」が直接表示されず、メニュー内に入っている場合があります。
Step 3:「Danger Zone」までスクロールする
Settings画面を下の方までスクロールすると、
Danger Zone
という項目があります。
名前のとおり、リポジトリ全体に大きな影響を与える設定が集められている場所です。
その中から、
Change repository visibility
を探します。
Step 4:「Change visibility」をクリックする
「Change repository visibility」の右側にある、
Change visibility
をクリックします。
Publicリポジトリの場合は、
Make private
などPrivateへ変更する選択肢が表示されます。
Step 5:変更内容を確認する
GitHubから確認画面が表示されます。
現在のGitHubでは、変更による影響を確認したうえで、
I have read and understand these effects
などの確認操作を行い、最後にPrivateへの変更を確定します。
これで、
Public
↓
Private
への変更が完了します。
Private → Public に変更する
逆に、Privateで作成したリポジトリを一般公開することもできます。
操作方法はほぼ同じです。
リポジトリ
↓
Settings
↓
Danger Zone
↓
Change repository visibility
↓
Change visibility
↓
Public
最後に変更内容を確認して、
Make this repository public
を実行します。
Private → Public は特に注意
PrivateからPublicへの変更は、単に「GitHub上の表示設定を変える」だけだと考えないようにしましょう。
Publicにすると、そのリポジトリのコードはインターネット上から閲覧できる状態になります。また、他のユーザーがForkすることも可能になります。GitHub Actionsの実行履歴やログも公開対象になります。
そのため、公開前には必ず内容を確認してください。
特に注意したいのが、
パスワード
APIキー
アクセストークン
接続文字列
個人情報
社内情報
などです。
「削除してからPublicにすれば大丈夫」とは限らない
Gitを学習するときに非常に重要なポイントです。
たとえば以前、
password = "abc123";
というコードをCommitし、そのあと現在のファイルから削除したとします。
現在のファイルには表示されていなくても、
過去のCommit履歴
には残っている可能性があります。
Gitは、
「現在のファイル」だけではなく「変更履歴」も管理している
からです。
そのためPrivateからPublicへ変更するときは、
今のコードだけを見る
のではなく、
過去のCommitも含めて公開して問題ないか
を考える必要があります。
Public → Private にすれば過去の公開がなかったことになる?
これも注意が必要です。
一度Publicで公開したリポジトリをPrivateに変更しても、
以前誰かにCloneされた
Forkされた
コードをコピーされた
という可能性までは取り消せません。
GitHub公式ドキュメントでも、PublicからPrivateへ変更した場合、既存のPublic ForkはPrivateになるのではなく、元のリポジトリから切り離されると説明されています。
つまり、
Public → Private
は、
「これから見えなくする」設定
であって、
「過去に公開していた事実を完全になかったことにする」設定ではありません。
StarsやWatchersにも注意
公開範囲を変更すると、リポジトリに付いていたStarsやWatchersが消去される場合があります。
特にPublicからPrivate、PrivateからPublicへの変更では、このような影響があることをGitHubが案内しています。
学習用のリポジトリではあまり問題にならないことが多いですが、一般公開しているOSSなどでは重要なポイントです。
GitHub FreeでもPrivateリポジトリは作れる
現在のGitHub Freeでは、PublicリポジトリだけでなくPrivateリポジトリも利用できます。
GitHub公式ドキュメントでは、GitHub Freeの個人アカウントおよびOrganizationでも、Privateリポジトリを利用できると説明されています。
そのため、
Privateリポジトリ = 有料機能
ではありません。
ただし、Privateリポジトリではプランによって利用できる高度な機能に違いがあります。
Organizationでは変更できない場合がある
個人所有のリポジトリでは、所有者がリポジトリのVisibilityを変更できます。
一方、Organization管理のリポジトリでは、
メンバーがVisibilityを変更できない
ようにOrganization Ownerが制限している場合があります。
つまり、
Change repository visibility
が操作できない場合、GitHubの不具合とは限りません。
Organization側の権限設定によって制限されている可能性があります。
GitHub Desktopから変更できる?
ここは初学者が迷いやすいところです。
リポジトリの、
Public
Private
という公開範囲の変更は、基本的にGitHubのWebサイト上のRepository Settingsから行います。
GitHub Desktopは主に、
Clone
Commit
Push
Pull
Fetch
Branch
Merge
など、ローカルリポジトリとGitHub上のリポジトリを操作するためのツールです。
したがって、
GitHub Desktop
↓
Visibility変更
ではなく、
GitHub Webサイト
↓
Settings
↓
Change repository visibility
と覚えておくとよいでしょう。
授業で使うならどちらがよい?
学習中のチーム開発では、目的によって使い分けることができます。
たとえば、
授業中の練習
↓
Private
としておき、
作品として公開しても問題ない状態になったら、
内容を確認
↓
Public
へ変更する方法があります。
ただし、
「あとでPrivateに戻せばよい」
という考え方はおすすめできません。
一度Publicにしたコードは、第三者にCloneやコピーされている可能性があるためです。
まとめ
GitHubでは、リポジトリ作成後でもPublicとPrivateを切り替えることができます。
基本操作は、
Repository
↓
Settings
↓
Danger Zone
↓
Change repository visibility
です。
ただし、本当に重要なのは操作方法ではありません。
覚えておきたいのは、
Private → Public
は、
「世界中から見える状態に変更する」
ということです。
特にPublicへ変更するときは、
現在のコード
+
Commit履歴
+
GitHub Actionsのログ
+
公開してはいけない情報
まで確認してから変更しましょう。
Gitを学習するときには、
GitHubのPublic / Privateは、単なる画面表示の設定ではなく、「誰がリポジトリを見ることができるのか」を決める重要なアクセス設定
と理解しておくとよいでしょう。
参考
GitHub Docs
「リポジトリの可視性を設定する」
「About repositories」
今回の記事では、特に授業でありがちな「Privateで作って、完成後にPublicへ変更する」流れを意識してあります。また、単なる操作手順よりも「過去のCommitも公開される」という点を入れたことで、Git教材としても使いやすい構成です。










ディスカッション
コメント一覧
まだ、コメントがありません