SourceTreeの基本操作と動作確認

SourceTreeでの操作に慣れていないため、
基本的な操作と実行時の結果をまとめました。

リモートリポジトリにはBitbucketを使用しています。

# Clone
### リモートリポジトリからローカルリポジトリを作成する		

+をクリックしNewTabを追加し、Cloneを選択
表示されたCloneの画面でリモートリポジトリのURLとローカルリポジトリを作成したいフォルダを設定してクローンボタンを押下

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3128258/3e0ea05b-aae3-c045-6cff-ceec830b2b43.png)

リモートリポジトリのURLはBitbucketの場合は対象のリポジトリのソースの直下になります

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3128258/0a84dedb-d7e2-2a5a-12d6-38ac888eaaf9.png)

Cloneの作成が完了すると、リモートリポジトリのタブが追加される
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3128258/5bd090b6-12f8-73a9-a33a-ed9f05ef693d.png)

# コミット
### 変更した内容をローカルリポジトリに登録する

ローカルリポジトリでファイルの追加もしくは更新を行うと、コミット内の「作業ツリーのファイル」に対象のファイルが表示されるので、「すべてインデックスに追加」か、「選択をインデックスに追加」のボタンを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3128258/e7f2b647-0bd2-e2d2-4330-f7bae5d3e226.png)

対象のファイルが「Indexにステージしたファイル」に移動するので、画面下部のテキストボックスに変更内容を記載して、「コミット」ボタンを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3128258/3141badc-ed5b-4170-0532-e6a2c892532c.png)

ローカルリポジトリにコミットされ変更履歴が更新される
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3128258/601b6582-2a8f-94ea-514b-623c977bf2ce.png)

# プッシュ
### ローカルリポジトリの変更をリモートリポジトリに登録する

プッシュ画面を開き、プッシュボタンを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3128258/db64aac9-0350-eb4a-4352-58b3e7eb244b.png)


プッシュが完了すると、プッシュアイコンの右上の未プッシュ件数が消える
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3128258/718ae742-47d5-4bba-1104-2c090b8cef67.png)

# プル
### リモートリポジトリの変更情報を取得し、ローカルリポジトリに適用
※プッシュでリモートリポジトリに変更が適用された状態から確認

プッシュをしたローカルリポジトリで変更履歴が表示されていることを確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3128258/6a1678bd-db47-68d6-0ba2-6e0bbaf23828.png)

プッシュをしていない別のローカルリポジトリの変更履歴ではプッシュの履歴が表示されていないことを確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3128258/51149574-729e-d35e-ead4-6c1ab0e9f321.png)

プル画面を開きプルを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3128258/8eeb3821-6b04-872d-528c-944ffcb5e40a.png)

プルが完了すると、ローカルリポジトリがプッシュを行った内容に更新される
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3128258/13091701-2b66-dc94-a4cf-1126cdaca0b4.png)

# フェッチ
### リモートリポジトリの変更情報を取得する

ローカルリポジトリで修正を行い、プッシュを完了した状態にする
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3128258/4d2ed64a-7638-5c6d-64fe-5cad75557f31.png)

別のローカルリポジトリの変更履歴ではプッシュの履歴が表示されていないことを確認
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3128258/d0ab3c38-0b0c-794c-f86e-179c218908f2.png)

フェッチ画面を開き、OKを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3128258/eb790a9f-fdd9-743d-4d1e-9a8db76acd12.png)

変更履歴にプッシュの履歴が表示される
（変更履歴は更新されるが、ファイルの更新はされていない状態、ここからプルかマージを実行することでファイルの更新が可能）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3128258/ef765e6b-cdf0-7bb8-e8cc-4bf6be063417.png)

# マージ
### 指定した変更情報に内容の更新を行う
※フェッチで変更履歴にプッシュの履歴が表示された状態から確認

マージを選択して、マージしたい変更履歴を選択し、OKボタンを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3128258/347288ed-f5bc-2b28-2f03-8b37d7886030.png)

マージが完了すると、ローカルリポジトリのファイルが更新され、対象の変更履歴が選択された状態になる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3128258/ecd75ebb-554b-9f55-c417-d0210de9654d.png)

# スタッシュ
### 変更を一時的に退避する

スタッシュを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3128258/11bae9e4-e8ff-c025-2e0f-16637795d321.png)

スタッシュの名前を設定し、OKを選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3128258/31428665-4710-2a55-b61b-05cdd61c95ab.png)

変更内容がスタッシュに退避される
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3128258/ddb98bad-4c47-8d07-e956-2fcdf1051ec3.png)

右クリックから適用を選択することで変更内容を再適用できる
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3128258/77519d4f-6f24-4759-9249-835aa26f7778.png)

# ブランチ
### リモートリポジトリから分岐した作業情報を作成する

ローカルリポジトリでブランチを選択して、ブランチ画面を開き、新規ブランチを入力して、「ブランチの作成」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3128258/c6ba2a5b-d8cb-ab61-6ac4-6b58ba76752c.png)

リモートリポジトリから分岐したブランチが作成される
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3128258/83edb4a5-724c-7a1b-7200-dcba7609a3db.png)

#### ブランチの処理内容の確認

別のローカルリポジトリにも同様のリモートリポジトリからブランチを作成する
　（共通のリモートリポジトリにブランチAとブランチBが作成されている状態になる）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3128258/31ff70ff-9781-75ad-12a8-3b1ac186bff8.png)

ブランチAとブランチBの両方でソースのプッシュを行う
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3128258/b77476f7-e548-1d60-7758-960cfa688e08.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3128258/0c2eaa3b-8d40-1c8a-6ac5-40ba0ffbc271.png)

Bitbucketのリモートリポジトリのブランチ内にプッシュした2つのブランチが追加されていることを確認し、ブランチAの「作成する」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3128258/1663018f-6244-e40a-12e6-7fecb15d3bd9.png)

プルリクエスト作成画面が表示されるので「プルリクエストを作成する」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3128258/db1d060c-a4c9-7b45-ba51-de99371b64a0.png)

プルリクエスト画面が表示されるので「承認する」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3128258/56b9fb85-87e2-7811-65da-62fe2e5a833b.png)

マージが可能になるので「マージ」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3128258/5cbdea6e-bffb-ec68-e580-549a604b8a67.png)

マージ画面でコミットメッセージを入力して「マージ」を選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3128258/79dff01f-114b-7f91-f134-d00de93dd341.png)

マージが完了すると完了メッセージが表示される
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3128258/2a28470d-ca54-c95e-887d-09dc185070a9.png)

リモートリポジトリのソース内にマージしたファイルが追加される
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3128258/14da75bc-f8bc-b53c-6d34-bbad0e1522cf.png)

SourceTreeのブランチAをプッシュしたローカルリポジトリの更新履歴を確認すると、ブランチAから分岐した線が
リモートリポジトリでのマージで元の線に合流している
（ブランチBはマージしていないため分岐したまま）
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3128258/59d37bb2-a435-31b5-8342-ae1ab6b8bc61.png)
 ブランチBを作成したローカルリポジトリ側の更新履歴からも確認可能
 ![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3128258/67fa32d7-3e58-2ebf-d39f-b17bcf450a7d.png)

ブランチBもリモートリポジトリでのマージを行うことで、分岐した線が元の線に合流する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3128258/9d08696a-e8cc-6e60-a624-d3a1fae1137a.png)

以上になります。