8
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

AndroidStudioとGitHubを使ったチーム開発でのバージョン管理

Last updated at Posted at 2020-01-16

Githubの導入についてはこちらを参照
(初めての)AndroidStudioからGitHubにプロジェクト作成

この記事ではチーム開発でのリポジトリの共有、クローン、コミット、プル、プッシュの仕方について解説します。

まず、Githubでプロジェクトを管理するときはリポジトリ(プロジェクトの入れ物)にこんな風に入っています。
git_repository_figure.png
出典:TeckAcademy 今さら聞けない!GitHubの使い方【超初心者向け】

Githubに新規のリポジトリを作成した後、
・各端末にレポジトリを複製する(クローン)
・各自のソースコードの変更をローカルレポジトリに反映させる(コミット)
・メンバーのソースコードの変更を自分のローカルレポジトリに反映させる(プル)
・自分のソースコードの変更をリモートレポジトリに反映させる(プッシュ)
という作業を行うので、それぞれ解説していきます。

####リポジトリへの招待
チーム開発を始めるには、大本の制作者がリポジトリを作成後、クローン等を行う権限をチームメンバーに渡さなければいけません。公式ヘルプページにスクショ付きの超わかりやすい解説が載っています。
GitHub ヘルプ - コラボレーターを個人リポジトリに招待する

招待を受けると、Githubのトップページ左側に該当のレポジトリが表示されるので確認してください。
https___qiita-image-store.s3.ap-northeast-1.amazonaws.com_0_562254_b5aae0d0-b792-06c0-db01-977d21f49473.png

####クローン
リポジトリに招待された側はそれぞれの端末にローカルリポジトリを作成し、Github上のリモートリポジトリから、データをまるっと持ってくる必要があります。
これをクローンといい、最初の一回だけ必要な作業です。(この記事の後で触れるプルが上手くいかないと何回もやるハメになります)

Githubのリポジトリを開くと右中央にClone or DownloadというボタンがあるのでクリックしてHTTPアドレスをコピーします。
※git@~~から始まるアドレスが表示される場合は枠の右上にUse HTTPSと表示されているので、そこをクリックすると直ります。
https___qiita-image-store.s3.ap-northeast-1.amazonaws.com_0_562254_4ff5a54c-052f-b597-cd6b-786569f3e552.png

ここからは全てAndroidStudioの方で操作していきます。
新規で適当にプロジェクトを作成してください。

メニューバーから次のように選択し、
sc01.png

URL:の欄に先ほどコピーしたアドレスを貼り付けます。
https___qiita-image-store.s3.ap-northeast-1.amazonaws.com_0_562254_dcea75dc-f67a-4b5e-678d-71dcd50b2ef4.png

『The directry already exists and it is not empty』というエラーメッセージが出る時は既に作成済みのディレクトリ名が指定されてるので新規で指定します。

『Check out from version control』というウィンドウが出てくるのでYes
(持ってきたプロジェクトを開きます)

『Sync android SDKs』というウィンドウが出てくるのでOK
(リモートリポジトリのプロジェクトとローカルリポジトリのプロジェクトのパスが一致しないのでAndroidStudioの方で勝手に合わせてくれます)

これで最初にやることはおしまいです。プロジェクトを更新しながら行う手順に入っていきましょう。

####コミット
ソースコードの変更を自分のPC上のローカルリポジトリに反映させます。この時点ではリモートリポジトリのソースコードは変更されません。また、コミットした後でないとプル、プッシュができません。

メニューバー - VCS - commit を選択
commit message が空白だとエラーが出るので自分がソースコードに変更を加えた内容を明記します。
https___qiita-image-store.s3.ap-northeast-1.amazonaws.com_0_562254_aa35d08e-10c8-fbca-6e8a-2433746d1a27.png

そしてcommit。出てくるウィンドウでもcommit

左下の方に緑色の枠でcommit messageが表示されたら成功です。
sc22.png

####プル
他のメンバーが変更したリモートリポジトリのソースコードを、自分のローカルリポジトリに持ってきます。この作業は自分のローカルリポジトリのコミットとチームのコミットと、どちらを優先させるか設定することが可能です。

メニューバー VCS - Git - pull を選択
出てくるウィンドウでもpullを選択
右下に↓のようなエラーが出たらコミットを忘れているのでコミットしてください。
sc23.png

リモートリポジトリとローカルリポジトリのどちらを優先するか聞かれます。
ファイルごとチームを優先させるならAccept Theirs
ファイルごと自分を優先させるならAccept Yours
コードをいい感じに混ぜるならMerge
https___qiita-image-store.s3.ap-northeast-1.amazonaws.com_0_562254_db9fb23f-74f0-db0d-1a4e-c4bddd9aece3.png

この時、自分がコミットした状態とpullで持ってきた状態を、どちらもブランチとして持っています。
そして今は自分のコミットを記憶しているブランチに存在しているので、これからpullしてきた方に移動します。

画面下の方でVersion Controlタブ - Logタブ を開きます。
sc16.png
オレンジの玉が付いているブランチがリモートリポジトリにに存在している最新版なので、今回は『画像変更』のコミットに移動します。
該当のコミットを右クリックReset Current Branch to Hereを選択します。
sc17.png

このようなウィンドウが表示されるのでMixedを選択してReset
tes.png

同じ箇所を修正してるなんて残念なことがなければ、AndroidStudioが自動的にそれぞれのコミットを反映してくれます。

左下にReset Successfulと表示されたらOKです。
が、ここで完了ではないので注意です!

pullの時にパスなども反映してしまってbuildがおかしくなってしまうので、一度AndroidStudioをリスタートします。
メニューバー file - Invalidate Caches / Restart - Just Restart を選択すると正常にビルドされます。

参考記事:[Android Studio] エラー吐き地獄に陥った時に試してほしい事

これでプルは完了です。

####プッシュ
自分のローカルリポジトリが反映済みのソースコードをリモートリポジトリに反映させます。

コミットをする時のcommit changesウィンドウでcommitのボタンのオプションを開きcommit and pushするか、もしくは
メニューバー VCS - Git - push を選択したください
出てきたウィンドウでpushを選択します。

右下にpush successfulと表示されたら完了です。
sc24.png

8
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?