Git:リモートリポジトリの構築とプッシュ(GitHub編)

投稿日:  更新日:

Android StudioはVCS(Version Control System:バージョン管理システム)を使って、プロジェクトの変更履歴の管理が可能です。

Android Studioで利用可能なVCSはいくつかありますが、Gitを取り上げて、リモートリポジトリの構築とGitHubアカウントを使ったプッシュ(履歴の登録)の方法を紹介します。

BitbucketよりGitHubの方がシンプルで使い易いかも…

※環境:Android Studio Narwhal 3 Feature Drop | 2025.1.3
    Git version is 2.50.1
※前提:ローカルリポジトリの構築済み

スポンサーリンク

GitHubとは

GitHubは「GitHub, Inc.(日本支社:GitHub Japan)」が提供するGitのホスティングサービスです。

このホスティングサービスを利用して、Gitのリモートリポジトリ(リポジトリサーバー)が構築できます。

利用制限付きの無料枠があるので、個人利用に最適です。本格的な開発を行いたければ、後に有料枠へ移行して、制限を解除することも可能です。

同様なホスティングサービスとして、Bitbucketが広く知られています。

GitHubとBitbucketの無料枠を比較すると、次のような違いがあります。利用目的に合わせて選択すると良いでしょう!(※’25/09現在)

BitbucketGitHub
リポジトリ数無制限無制限
リポジトリサイズ1GB(ワークスペース内合計)5GB(1GBを推奨)
ファイルサイズ100MB
LFSの利用が可能(1GBまで)
100MB
LFSの利用が可能(2GBまで)
コラボレーター数
(共同開発者数)
5無制限
公開範囲プライベート
(パブリックは有料)
プライベート
パブリック
※値は無料枠で使える範囲、範囲外は有料
※プライベート:ネット上に非公開、パブリック:ネット上に公開
※タイトル欄のリンク:無料・有料プランの機能比較
※LFS:Large File Storage

ここでは、GitHubを利用します。

スポンサーリンク

GitHubアカウントの作成

GitHubを利用するために、アカウントを作成してください。

GitHubアカウントの作成

スポンサーリンク

GitHubストレージの構成

GitHubのアカウントが作成されると、アカウント毎にストレージが割り当てられます。

このストレージへリモートリポジトリを構築することになります。

リポジトリの階層

基本は、アカウントの配下にリポジトリが並ぶ構成になります。

また、GitHubのサインインユーザーは共有アカウント(Organization)の作成が可能です。共有アカウントとは「複数人で共有するアカウント」のことです。

リポジトリの構成上は、アカウントと共有アカウントは同列になります。つまり、扱いは同じです。

GitHubのリポジトリ構成

アカウントと共有アカウントはGitHub内で重複しない名前が要求されます。アカウント名の取得は「早い者勝ち」ですので、他のユーザーにより使用済みの名前は使えません。

リポジトリは任意な名前が付けられます。

リポジトリのパス

リポジトリのパス(URL)は、先頭にGitHubのホスト名(github.com)をつけて、次のように表します。

github.com/アカウント名/リポジトリ名.git

例:github.com/userA/RepositoryA.git
  github.com/OrganizationA/RepoX.git    ... 共有アカウント

※リポジトリ名は大文字・小文字の違いは無視されます。
スポンサーリンク

PublicとPrivateリポジトリ

リポジトリは「Public」と「Private」の2種類があります。

リポジトリの作成時に選択できます。後に、変更も可能です。

Public

Publicの特徴は「誰でも無条件に読み出し(Clone,Pull)が出来る」ことです。ネットワーク上に公開することを意味します。

ただし、所有者以外の書き込み(Push)は出来ません。

Publicリポジトリ

◎:誰でも無条件に可(≒全世界に公開)
〇:トークンにより可
X:出来ない

Private

Privateの特徴は「所有者のみにアクセス(Clone,Pull,Push)を許す」ことです。所有者以外のアクセスは禁止です。

Privateリポジトリ

◎:誰でも無条件に可(≒全世界に公開)
〇:トークンにより可
X:出来ない
スポンサーリンク

トークンの発行

所有者以外がアクセスしたい場合は、所有者が発行するトークンを使う方法があります。

トークンとは「所有者の権限の一部を委譲したチケット」です。

Publicをtokenでアクセス
Privateをtokenでアクセス

このチケットを持つアプリは、所有者に成り代わってアクセスを行えます。

※詳細は以下を参照
「Git:リモートリポジトリのクローンとプル(トークン、GitHub編)」

スポンサーリンク

ローカルとリモートの関連付け

ローカルとリモートへリポジトリを作成しても、個別にリポジトリが存在するだけです。

両者の間に関連付けが必要です。つまり、ローカルからプッシュ(Push)やプル(Pull)を行ったら、関連付けされたリモートリポジトリがアクセス対象になるようにします。

関連付けの方法は2つあります。

一つは、リモート側へ先にリポジトリを作り、ローカル側へクローン(コピー)します。

ローカルとリモートの関連付け1

もう一つは、ローカル側とリモート側に個別にリポジトリを作ります。この時、リモート側のリポジトリは空(何も登録がない)にします。

その後、ローカル側からリモート側へプッシュして、リポジトリを染め上げます。

ローカルとリモートの関連付け2

今回は、後者の方法を使って関連付けを行うことにします。

理由は、Android Studioが作成する.gitignoreを有効利用するためです。

スポンサーリンク

リモートリポジトリの作成

GitHubのサイトへサインインし、空のリポジトリ(リモート側)を作成します。

リポジトリの作成

.gitignoreファイルは作りません。ここで.gitignoreを作ると、.gitignoreの履歴がリモートリポジトリへ登録されてしまいます。そして、ローカルリポジトリをプッシュしたときに、ローカルリポジトリ内の.gitignoreの履歴とコンフリクト(履歴の衝突)が発生してしまいます。

つまり、ここで作るリポジトリは「空」リポジトリです。

リポジトリの作成が終わると、次の案内が表示されます。

リポジトリの案内

リポジトリのパスを確認しておきましょう!

スポンサーリンク

プッシュ(Push)の実施

初回のプッシュを行うことにより、リモートリポジトリ(空)をローカルリポジトリで染め上げる処理を行います。

これにより、ローカルリポジトリで行われるプッシュの対象は、ここで染め上げたリモートリポジトリになります。

リモートの定義

Android Studioでローカルリポジトリ構築済みのプロジェクトを開きます。

リモートの定義は、Gitメニューの「Manage Repotes…」から行います。

Git Remotesパネル

「リモートの追加(+)」ボタンを押すと、「Define Remote」ウィンドウが開きます。

Define Remoteパネル

ここで、リモートリポジトリのパス(URL)を入力して「OK」ボタンを押下すると、ユーザー認証のためにGitHubへサインインを求められます。

このサインインは、GitHubの認可サーバーからAndroid Studio(JetBrains IDE)へ、トークンを発行してもらうための手続きです。OAuthが使われています。

jetBrains.com経由になる点に注意して下さい。

OAuthでトークンを発行

正常にサインインできれば、Android Studioへリモートリポジトリが定義されます。

リモートの定義の結果

これらは、Gitコマンドを操作した場合の”git remote”と同等な操作です。

> git remote add origin https://github.com/ユーザー名/SampleApp.git
スポンサーリンク

プッシュの実行

プッシュの実行は、Gitメニューの「Push…」から行います。

Git Pushパネル

「Push Commits to プロジェクト名」ウィンドウが開きます。

プッシュの実行

「Push」ボタンの押下でプッシュが開始され、変更履歴がローカルからリモート側へ送信されます。

プッシュの結果

プッシュ後に、GitHubサイトへサインインしてリポジトリを参照すれば、プッシュされた内容が確認できます。

GitHubでプッシュされた内容の確認

スポンサーリンク

トークンの保持

ユーザ認証後に発行されたトークンはAndroid Studio内に保持されるので、2回目以降はプッシュの実行だけで済みます。ユーザ認証は不要です。

トークンの保持状況は、Android Studioの「Settings->Version Control->GitHub」で確認できます。

トークンの保持

スポンサーリンク

関連記事:

Android StudioはVCS(Version Control System:バージョン管理システム)を使って、プロジェクトの変更履歴の管理が可能です。 Android Studioで利用可能なVCSはいくつかありますが、Gitを取り上げて、ローカルリポジトリの構築とコミット(履歴の登録)の方法を紹介します。 ※環境:Android Studio Electric Eel | 2022.1.1 ※Git自体の説明は行いません。 ...
Android StudioはVCS(Version Control System:バージョン管理システム)を使って、プロジェクトの変更履歴の管理が可能です。 Android Studioで利用可能なVCSはいくつかありますが、Gitを取り上げて、リモートリポジトリの構築とアプリパスワードを使ったプッシュ(履歴の登録)の方法を紹介します。 ※環境:Android Studio Electric Eel | 2022.1.1 ※前提:ローカルリポジトリの構築済み ...
Android StudioはVCS(Version Control System:バージョン管理システム)を使って、プロジェクトの変更履歴の管理が可能です。 Android Studioで利用可能なVCSはいくつかありますが、Gitを取り上げて、SSHを使ったリポジトリのクローン(コピー)とプル(履歴の取得)の方法を紹介します。 ※この記事に掲載していた「SSHとは」は、「SSHで安全な通信経路を確立」へ分離しました。 ※環境:Android Studio Electric Eel | 2022.1.1     OpenSSH_for_Windows_8.6p1, LibreSSL 3.4.3 ※前提:リモートリポジトリの構築済み ...
Android StudioはVCS(Version Control System:バージョン管理システム)を使って、プロジェクトの変更履歴の管理が可能です。 Android Studioで利用可能なVCSはいくつかありますが、Gitを取り上げて、アプリパスワードを使ったリモートリポジトリのクローン(コピー)とプル(履歴の取得)の方法を紹介します。 ※環境:Android Studio Electric Eel | 2022.1.1 ※前提:リモートリポジトリの構築済み ...
Android Studioで採用されている、パスワード管理ツール「KeePass」について、まとめます。 ※環境:Android Studio Narwhal 3 Feature Drop | 2025.1.3 ...
サーバーとクライアント間でデータを受け渡しする際に、安全な通信経路を確立する目的で、SSHが広く使われています。 Android Studio(Gitクライアント)とBitbucketまたはGitHub(Gitサーバー)間も、SSHが利用できます。 今回は「SSHの概要」を、まとめます。 ※この記事は「Git:リポジトリのクローンとプル(SSH、Bitbucket編)」から「SSHとは」を分離したものです。加筆も行っています。 ...
Android StudioはVCS(Version Control System:バージョン管理システム)を使って、プロジェクトの変更履歴の管理が可能です。 Android Studioで利用可能なVCSはいくつかありますが、Gitを取り上げて、トークンを使ったリモートリポジトリのクローン(コピー)とプル(履歴の取得)の方法を紹介します。 BitbucketよりGitHubの方がシンプルで使い易いかも... ※環境:Android Studio Narwhal 3 Feature Drop | 2025.1.3     Git version is 2.50.1 ※前提:リモートリポジトリの構築済み ...
Android StudioはVCS(Version Control System:バージョン管理システム)を使って、プロジェクトの変更履歴の管理が可能です。 Android Studioで利用可能なVCSはいくつかありますが、Gitを取り上げて、SSHを使ったリポジトリのクローン(コピー)とプル(履歴の取得)の方法を紹介します。 BitbucketよりGitHubの方がシンプルで使い易いかも… ※環境:Android Studio Narwhal 3 Feature Drop | 2025.1.3     Git version is 2.50.1     OpenSSH_for_Windows_9.5p2, LibreSSL 3.8.2     Windows 11 Pro 24H2 ※前提:リモートリポジトリの構築済み ...
スポンサーリンク