iOSアプリエンジニアのためのAndroidアプリ開発入門　その4 〜Git編〜

## はじめに（対象読者と内容の方向性）

この記事は『iOSアプリ開発はやったことあるけど、Androidアプリ開発ははじめて』という方向けにAndroidアプリ開発についてまとめたものです。

iOSアプリエンジニア向けなので、『iOSでのこういう機能は、Androidではこうやって実装する』、『iOSではこういう考え方だけど、Androidではこういう考え方で実装する』みたいな形で紹介できればと考えています。

## 免責事項

Androidアプリ開発初心者が勉強しながら書いているので、たぶん間違いがたくさんあります。勉強していく過程で間違いに気がついたらその都度修正をしますが、「ここ間違ってるで〜」というのがあれば、ぜひツッコンでください。

## 全体の目次

[その1 〜インストール編〜](https://qiita.com/toshi586014/items/28a6dc614f3e8d879e9c)
[その2 〜新規プロジェクト作成編〜](https://qiita.com/toshi586014/items/ea6bc2321d3baa57f6ad)
[その3 〜エミュレータ編〜](https://qiita.com/toshi586014/items/2e4478a7f7fa49f24826)
その4 〜Git編〜　←イマココ

## Android Studioのバージョン管理

Android Studioには、ローカル・ヒストリーというバージョン管理システムがあります。

Android Studioの元になった[Intellij IDEAのヘルプ](https://pleiades.io/help/idea/local-history.html)には、

> ローカル・ヒストリーを使用して、プロジェクトに加えられたすべての変更を常に追跡します。特定のコミット間の違いを示すバージョン管理システムとは異なり、ローカル・ヒストリーはすべての意味のあるイベントに対する改訂を自動的に維持します。

と書かれています。

<img width="1169" alt="04-001.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/38924/dc785c9b-107f-d14a-3f94-b0f907d6d794.png">


ためしに、メニューのVCS -> Local History -> Show History を選択してみましょう。

<img width="1312" alt="04-002.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/38924/206fb528-b88e-9875-b030-07ce44466c20.png">


このように、自動的に保存されたバージョン履歴を参照することができます（任意のバージョンに戻すこともできます）。

しかし、[Intellij IDEAのヘルプ](https://pleiades.io/help/idea/local-history.html)によると、

> ローカル・ヒストリーは、適切なソース管理の代わりにはなりません。
> 新しいバージョンのIntelliJ IDEAをインストールするかキャッシュを無効にすると、クリアされます。保持期間と最大サイズがあるため、改訂が永久に持続することは保証されていません。

とあるので、Gitなどのバージョン管理システムを使用するほうがよさそうです。

## Android StudioでGitを使おう

それでは、Android StudioでGitを使ってみましょう。

<img width="1058" alt="04-003.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/38924/3bafbe68-a2c8-70af-04c3-6fc2cc81ab71.png">


まず、メニューのVCS -> Enable Version Control Integration を選択します。

<img width="680" alt="04-004.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/38924/03846093-32a4-063f-8090-2954675b5aeb.png">


どのバージョン管理システムを使うか尋ねられるので、Gitを選択してOKボタンをクリックします。

<img width="1512" alt="04-005.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/38924/1c9d656b-c85c-6904-759b-840ce40b8db6.png">


Gitが有効化されて、画面右下に `Git: master` という表示が追加されました。

<img width="1386" alt="04-006.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/38924/3cae3ddd-4589-e268-2454-90c6008cb41a.png">


もう一度メニューのVCSを開くと、Gitが追加されています。

## Commitしよう

つぎに、Gitにファイルを追加してCommitしましょう。

<img width="1341" alt="04-007.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/38924/92346ef1-1d69-a38c-4315-9fbd3a45bf8b.png">


Sourcetreeでプロジェクトを登録して見てみると、まだ作業ツリーにファイルがある状態です。まずは、すべてのファイルをステージング状態にしましょう。

<img width="322" alt="04-008.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/38924/68ed16e0-cc5f-f5a2-e309-528572e197e7.png">


画面左のプロジェクトビューにあるAndroidをクリックして、一覧からProjectを選択します。

<img width="852" alt="04-009.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/38924/90a923d0-a190-5e1f-cc34-e364cb32fe84.png">


プロジェクト名（↑の例でいうとMyApplication）を右クリックして、メニューのGit -> Add を選択します。

<img width="1341" alt="04-010.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/38924/111502c8-087d-955f-3a90-db05f517bcb2.png">


もう一度Sourcetreeで確認すると、ぜんぶのファイルがステージング状態に変更されています。

<img width="1379" alt="04-011.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/38924/d403cded-abcf-4047-0c7a-8bfc13ff82a0.png">


あとはCommitするだけです。
メニューの VCS -> Git -> Commit Directory を選択します。

<img width="920" alt="04-012.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/38924/0c08f2e8-4823-42f0-7dc0-c345ceaf5ace.png">


コミット画面が表示されるので、コミットするファイルを選択したり、コミットメッセージを入力します。
今回はぜんぶのファイルを対象にするので、すべて選択状態のままにします。コミットメッセージはFirst CommitにしてCommitボタンをクリックします。

<img width="847" alt="04-013.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/38924/5c064c83-41fe-af1c-392b-6eb37f722e23.png">


なにやら警告が表示されました。
今回はFix and Commitを選択します。

<img width="456" alt="04-014.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/38924/0a978cc5-17a8-7e0a-5d4e-3f5f6f955fe2.png">


警告が3つあるということですが、今回はお試しなのでそのままコミットします。

<img width="1341" alt="04-015.png" src="https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/38924/b02c8e1d-e260-51b3-bdf3-ece041ba503b.png">


Sourcetreeで確認すると、無事にFirst Commitができていました。やったね！

## 終わりに

Android StudioのGitメニューをみると、ブランチの作成やリベースなどはもちろん、プッシュやプルなどリモートリポジトリとの連携機能もあるので、一通りのGit操作はできそうです。

わたしはSourcetreeを愛用していますが、XcodeのGit機能を使っているかたは、違和感なく乗り換えられるのではないでしょうか。

それでは、次回の更新をお待ちください。