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

投稿日:  更新日:

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

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

※環境:Android Studio Electric Eel | 2022.1.1
※前提:ローカルリポジトリの構築済み

スポンサーリンク

Bitbucketとは

BitbucketATLASSIANが提供するGitのホスティングサービスです。

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

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

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

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

BitbucketGitHub
ストレージ容量1GB500MB
コラボレーター数
(共同開発者数)
5無制限
公開範囲プライベート
(パブリックは有料)
プライベート
パブリック
※値は無料枠で使える範囲、範囲外は有料
※プライベート:ネット上に非公開、パブリック:ネット上に公開
※タイトル欄のリンク:無料・有料プランの機能比較

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

スポンサーリンク

Bitbucketアカウントの作成

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

Bitbucketアカウントの作成

スポンサーリンク

Bitbucketストレージの構成

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

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

リポジトリの階層

ストレージ内は ワークスペース  リポジトリ の2階層になっています。

Bitbucketのストレージ構成

ワークスペースはBitbucket内で重複しないIDが要求されます。IDの取得は「早い者勝ち」ですので、他のユーザーにより利用済みのIDは使えません。

リポジトリは任意な名前が付けられますが、参照するときは「.git」が付加されます。

そして、一つ以上のリポジトリを束ねたグループが、 プロジェクト です。

リポジトリのパス

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

bitbucket.org/ワークスペースID/リポジトリ名.git

例:bitbucket.org/ws_a/repositorya.git

※リポジトリ名は小文字に変換される
スポンサーリンク

アプリパスワードによるアクセス

Bitbucketにおけるアプリパスワードを使ったアクセスは、次のような特徴があります。

アプリパスワードとは

アプリパスワードはツール(ここではAndroid Studio)に与えるチケットです。

遊園地で遊ぶために入場チケットが必要なように、リモートリポジトリへアクセスするためにアプリパスワードが必要です。

ログインで使用するパスワードとは別なので注意してください。

アプリパスワードとは

このアプリパスワード(チケット)を持っているツールは、Bitbucketのアカウントの有無に関係なく、リポジトリへアクセスが可能になります。

ですので、アプリパスワードが漏洩しないように、厳重な管理が必要です。

アクセスの様子

アプリパスワードはBitbucketのアカウントが発行します。

ですので、アカウント(UserA)が所持するストレージ内のみで有効です。他者(UserB)が発行したアプリパスワードは無効であり、アクセスは許されません。※ただし、他者をワークスペース内に招待すればアクセス可

アプリパスワードによるアクセス

アプリパスワードは、「1:1(パスワード:ツール)」や「1:多」といった配布が出来ます。

どのように配布するかは、アプリパスワードに指定する権限(後述)と合わせて決めます。ここは「誰に何を見せて、何を許可するか!」といった、アプリ開発の方針に関わるところです。

アプリパスワードの取得

Bitbucketにログインし、そのアカウントのアプリパスワードを作成します。

アプリパスワードの作成

アプリパスワードには権限(許可の範囲)が指定できます。このアプリパスワードを使ってリポジトリへアクセスするツールは、操作内容が権限で許された範囲に限られます。

Android Studioから扱える操作はGitのみなので、「リポジトリ」が許可されていれば十分です。権限は最小限に絞りましょう!

アプリパスワードの権限

作成されたアプリパスワードは下図のようなウィンドウに表示されます。ウィンドウを閉じた後、同じパスワードの再取得ならびに再表示はできません。紛失すると再作成になってしまいます。注意してください。

作成されたアプリパスワード

アプリパスワードが作成されると、アカウント宛にメールで通知が届きます。

アプリパスワード作成の通知

スポンサーリンク

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

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

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

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

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

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

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

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

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

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

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

スポンサーリンク

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

空のリポジトリ(リモート側)を作成します。

サンプルで作るリポジトリは図のような構成にしました。

サンプルリポジトリの構成

作成はBitbucketにログイン(アカウント:UserA)して、Webページ上から行うことになります。

ワークスペース

ワークスペースの作成は、右上にある「Your profiles and settings」アイコンから行います。

ワークスペースの作成

「Create a workspace」ウィンドウが開きます。

ワークスペースの作成

ここで、ワークスペース名(サンプルはGitTestRoom)を入力すると自動でIDが入り、「Create」ボタンの押下で作成です。

Bitbucket内に重複したIDが存在していると、Createボタンの押下時に警告がでます。重複しないIDに変更してください。ワークスペース名はそのままで、IDのみの変更も可能です。

プロジェクト

プロジェクトの作成は、上部にある「プロジェクト」タブから行います。

プロジェクトの作成

「プロジェクトを作成」ウィンドウが開きます。

プロジェクトの作成

ワークスペースならびにプロジェクト名(サンプルはSamplePrj)を入力し、「プロジェクト作成」ボタンの押下で作成です。

リポジトリ

リポジトリの作成は、上部にある「リポジトリ」タブから行います。

リポジトリの作成

「新規リポジトリの作成」ウィンドウが開きます。

リポジトリの作成

ワークスペースとプロジェクトならびにリポジトリ名(サンプルはSampleApp)を入力し、「リポジトリの作成」ボタンの押下で作成です。

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

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

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

リポジトリの作成

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

スポンサーリンク

プッシュ(Push)の実施

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

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

リモートの定義

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

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

リモートの定義

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

リモートの定義

ここで、リモートリポジトリのパス(URL)を入力して「OK」ボタンを押下すると、Gitサーバーへの接続が試みられて、アプリパスワードの入力が要求されます。

Bitbucketのログインパスワードではなく、アプリパスワードである点に注意してください。

リモートの定義

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

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

> git remote add origin https://user_a@bitbucket.org/gittestroom/sampleapp.git
> git config --local  --list
core.repositoryformatversion=0
core.filemode=false
core.bare=false
core.logallrefupdates=true
core.symlinks=false
core.ignorecase=true
remote.origin.url=https://user_a@bitbucket.org/gittestroom/sampleapp.git
remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*

プッシュの実行

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

プッシュの実施

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

プッシュの実施

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

プッシュの結果

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

プッシュの結果

スポンサーリンク

関連記事:

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を取り上げて、SSHを使ったリポジトリのクローン(コピー)とプル(履歴の取得)の方法を紹介します。 ※環境:Android Studio Electric Eel | 2022.1.1 ※前提:リモートリポジトリの構築済み ...
Android StudioはVCS(Version Control System:バージョン管理システム)を使って、プロジェクトの変更履歴の管理が可能です。 Android Studioで利用可能なVCSはいくつかありますが、Gitを取り上げて、アプリパスワードを使ったリモートリポジトリのクローン(コピー)とプル(履歴の取得)の方法を紹介します。 ※環境:Android Studio Electric Eel | 2022.1.1 ※前提:リモートリポジトリの構築済み ...
スポンサーリンク