Android StudioとBitbucketを使ったGitHub flowの流れ

# Android Studio

## バージョン管理を有効

<img width="601" alt="スクリーンショット_2016-03-21_17_51_14.png" src="https://qiita-image-store.s3.amazonaws.com/0/99731/a584a045-d603-ed6f-13ad-fbd4c52f8dfd.png">

## Gitを選択

<img width="561" alt="Enable_Version_Control_Integration_と_MainActivity_java_-_My_Application_-____Desktop_Android_Dropbox_MyApplication19_.png" src="https://qiita-image-store.s3.amazonaws.com/0/99731/c5c1adf3-09e6-063b-cf3e-e39e3bfd70fa.png">

#Bitbucket

## SSH設定

<img width="385" alt="スクリーンショット_2016-03-21_18_11_40.png" src="https://qiita-image-store.s3.amazonaws.com/0/99731/952dc110-71bc-62b6-ee64-132ed285ef53.png">

## ターミナル

cat ~/.ssh/id_rsa.pub | pbcopy

## 鍵を追加

<img width="1054" alt="araiyusuke___ssh_キー_—_Bitbucket.png" src="https://qiita-image-store.s3.amazonaws.com/0/99731/4e41d2f7-e5df-5bc7-ab49-d29ecacc2fcb.png">

## コピーしたKeyを貼り付ける

<img width="804" alt="araiyusuke___ssh_キー_—_Bitbucket.png" src="https://qiita-image-store.s3.amazonaws.com/0/99731/be2778b6-723d-c951-2bb4-19c50b6a7e7c.png">

## リポジトリ作成

<img width="497" alt="スクリーンショット_2016-03-21_17_54_45.png" src="https://qiita-image-store.s3.amazonaws.com/0/99731/686898fb-ad19-239c-cdc3-00378d358a4e.png">

## リポジトリ名「demo」、Git、非公開

<img width="759" alt="リポジトリの作成_—_Bitbucket 2.png" src="https://qiita-image-store.s3.amazonaws.com/0/99731/6bcbb7ea-15ab-186f-4f93-9a79251570f2.png">

## リモートリポジトリURLを確認

<img width="396" alt="スクリーンショット_2016-03-21_18_20_34.png" src="https://qiita-image-store.s3.amazonaws.com/0/99731/ed3bf8c4-a700-1adb-dc3e-76eccb91314b.png">


<img width="425" alt="araiyusuke___demo_—_Bitbucket.png" src="https://qiita-image-store.s3.amazonaws.com/0/99731/d8916b1b-29fc-7e7f-1ffd-2e0866f3e18a.png">

#Android Studio
## Add

Unversioned Files(バージョン管理されてないファイル)を右クリック
Git → Add

<img width="989" alt="スクリーンショット_2016-03-21_17_57_19.png" src="https://qiita-image-store.s3.amazonaws.com/0/99731/651a0f8c-d708-3b30-f016-f4517304db42.png">

## Commit

Default（33files)を右クリック
Git → Commit Files...

<img width="1012" alt="スクリーンショット_2016-03-21_17_57_30.png" src="https://qiita-image-store.s3.amazonaws.com/0/99731/64206675-5f90-4fbe-1edb-8e2a029d9355.png">

## push

Command + shift + k

## リモートリポジトリに設定

Define remoteをクリックしてBitbucketのURLを貼り付けてpushする。

<img width="596" alt="Define_Remote_と_Push_Commits_と_MainActivity_java_-_My_Application_-____Desktop_Android_Dropbox_MyApplication19_.png" src="https://qiita-image-store.s3.amazonaws.com/0/99731/89c55fd2-f0f1-6b6b-e97c-c23dd735cfff.png">

# push 成功

<img width="1041" alt="araiyusuke___demo___ソース___—_Bitbucket.png" src="https://qiita-image-store.s3.amazonaws.com/0/99731/b4ed7f83-20cd-6404-22d1-cae2ec093fe4.png">

# ブランチ作成

新しい機能を追加するためのブランチを作成する。

Android Studio 画面右下

<img width="468" alt="スクリーンショット_2016-03-21_17_18_26.png" src="https://qiita-image-store.s3.amazonaws.com/0/99731/0825967b-68b0-f426-85c7-46ce13dee3a9.png">

# ブランチ名 : add_button 作成

<img width="473" alt="Create_New_Branch.png" src="https://qiita-image-store.s3.amazonaws.com/0/99731/59d114c6-2b75-cce8-0315-df2117027f2a.png">

## master → add_buttonブランチに切り替わった

<img width="603" alt="MainActivity_java_-_My_Application_-____Desktop_Android_Dropbox_MyApplication19__と_「」を編集_-_Qiita_と_araiyusuke___demo___ソース___—_Bitbucket_png.png" src="https://qiita-image-store.s3.amazonaws.com/0/99731/4a7f8ee0-d456-b31e-0de8-31857a60f279.png">

## 新しい機能を追加

activity_main.xmlにボタンを追加

## add & commit
変更されたファイルをadd＆commitする。

## リモートリポジトリにpush

Command + shift + k

<img width="663" alt="Push_Commits.png" src="https://qiita-image-store.s3.amazonaws.com/0/99731/b529f590-5739-456c-58f4-8868915f9e0a.png">

##Bitbucketに、ブランチ「add_button」が作成された

<img width="330" alt="araiyusuke___demo_—_Bitbucket 2.png" src="https://qiita-image-store.s3.amazonaws.com/0/99731/b1ca876c-9d6e-6ecf-c7cd-e911a21fa683.png">

## プルリクエスト画面へ
<img width="1022" alt="araiyusuke___demo___プルリクエスト_—_Bitbucket_と_activity_main_xml_-_My_Application_-____Desktop_Android_Dropbox_MyApplication19_.png" src="https://qiita-image-store.s3.amazonaws.com/0/99731/7a05ecc5-e9a7-26d5-f100-665909a05b77.png">

## プルリクエスト作成

add_buttonブランチがmasterブランチにマージされたら、add_buttonブランチは必要なくなりますので、自動的に削除されるようにチェックボックスにチェックをつける。

<img width="831" alt="araiyusuke___demo___プル_リクエストを作成_—_Bitbucket.png" src="https://qiita-image-store.s3.amazonaws.com/0/99731/ec1e39eb-6d3b-98ba-753e-773e56b16531.png">

## masterブランチにマージする

<img width="902" alt="araiyusuke___demo___Pull_request__1__ボタンを追加しました。_—_Bitbucket.png" src="https://qiita-image-store.s3.amazonaws.com/0/99731/2bf200e0-dc55-8cbf-c632-7f080c031ce1.png">

#Android studio

## masterへ切り替える
現在のブランチは、add_buttonです。masterへ切り替えてローカルのadd_buttonブランチも削除して、リモートリポジトリの内容をpullします。

<img width="374" alt="スクリーンショット_2016-03-21_18_55_05.png" src="https://qiita-image-store.s3.amazonaws.com/0/99731/9645f76f-c778-06fa-20a8-f44cd2dd5e10.png">

## add_buttonブランチ削除

<img width="621" alt="スクリーンショット_2016-03-21_18_57_44.png" src="https://qiita-image-store.s3.amazonaws.com/0/99731/51869e21-5963-13eb-09c1-0adf26ac3e73.png">

## pull
<img width="584" alt="スクリーンショット_2016-03-21_19_00_34.png" src="https://qiita-image-store.s3.amazonaws.com/0/99731/9b8c76da-32f2-247d-653b-1df24acaa13b.png">

リロードしないと、最新の情報が反映されないので注意。

<img width="592" alt="Pull_Changes_と_activity_main_xml_-_My_Application_-____Desktop_Android_Dropbox_MyApplication19_.png" src="https://qiita-image-store.s3.amazonaws.com/0/99731/23bcdb5b-3f1f-c8cb-9741-8e30aae9d53d.png">

#まとめ

新しい機能を追加する場合は、ブランチを作成して、都度、リモートにpushする。完了したら、プルリクエスト。レビューが通れば、リモートのmasterブランチにマージする。マージに成功したら、必要ないブランチはローカル・リモート含め削除して、最新のmasterブランチからpullして更新する。基本的にはこの流れ。