GitとGitHubを基本からまとめてみた【SorceTree】

## ブランチ
ブランチとは、枝(branch)を意味し、本体から分岐させて管理できる機能の事で、
上記図のtestsbranchにコミットした内容は、本体のmainには影響を与えません。
本体は、mainブランチと呼ばれ、『ブランチを作る』『ブランチを切る』等言う。


## マージ
マージとは、あるブランチから他のブランチを取り込む機能の事で、下記図では、mainブランチからtestbranchブランチを取り込んで(マージ)いう。
マージする時に同じ行を修正していた場合は、コンフリクト(競合)が発生してマージできない。その場合は、ファイルを手動で修正してからマージする。

## 1. ブランチを作成する
①『ブランチ』をクリックする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/939638/10fa2ca0-98db-11d3-eff7-f6a12a2cf44c.png)

②新規ブランチの入力欄にブランチ名を入力する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/939638/eb1cfa84-4bed-9ade-1d08-7d266f83e41a.png)

③作成完了時の画面で、testbranchの前の丸(○)はカレントブランチ(現在のブランチ)を示している。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/939638/e28bd6ed-7882-8756-b195-b412a4b12d93.png)

## ２．ブランチをマージする
①ファイルをダブルクリックしてファイルを開き内容を修正する。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/939638/4114505a-86bc-1a8d-3108-1b31552a58a3.png)

②作業ツリーのファイルの対象のファイルを選択し、『選択をインデックスに追加』をクリックしてステージングへ登録する。

③左の『ファイルステータス』をクリックしてコメントを入力し『コミット』をクリックする。※完了後のHistoryは以下になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/939638/a716f4ce-0a47-11ca-9cd9-caba921fe717.png)

④『master』をダブルクリックしカレントブランチ(丸がつく)にする。
『testbranch』を右クリックし「現在のブランチにtestbranchをマージ」をクリックする。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/939638/e9547e1e-e744-bba2-1f38-28d17ad7d79d.png)

⑤『OK』をクリックする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/939638/e481a252-23ce-4251-c4d1-5026804d9a07.png)

⑥『master』にあるファイルの内容を確認するとtestbranchで修正した内容が反映される。右下側のファイルの内容の3行目にハローが追加されている。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/939638/93e6307f-ddf6-c987-f723-791f83bf1178.png)


## SourceTreeで無視リスト=.gitignoreに追加・削除する

SourceTreeを使っていたら、コミットに数十の数字が出てくる時がある。
こういう場合、『無視リスト＝.gitignore』に追加をする。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/939638/f62258ec-392c-f130-0f57-9fb033cbf5f8.png)

## 無視リスト=.gitignoreに追加する
①右クリック＞ファイルを無視 を押す。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/939638/86ef9884-2114-6585-a26c-57f8c974fb2f.png)

②.gradle フォルダ配下をまとめて無視したいので、『以下をすべて無視』を選択して、右側プルダウンで「.gradle」を選択し、『OK』を押す。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/939638/e3f0c7cc-bcb7-8500-0742-53dbe5b530c6.png)

③コミット対象のリストから.gradle配下のファイルの表示を確認する。
※ 無視リスト=.gitignoreに追加を確認する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/939638/3de97ac4-3fcb-8145-173a-7436f82633e1.png)

## グローバル無視リスト

①画面下部の『この無視エントリの追加先』を選択すると、『このリポジトリのみ』と
『グローバル無視リスト』が表示。グローバル無視リストとは、SourceTreeがインストールされているPC全体に適用され、そのPC内のどのリポジトリでも無視されるということ。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/939638/9886b822-ab06-fb3c-5ad1-3fbb734f86c8.png)

②グローバル無視リストは~/.gitignore_globalで管理されており、
SourceTree>環境設定>Gitから参照・編集することができる。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/939638/f27bd8b7-f318-d34b-85cd-27c4c0f39f30.png)

③もしくは、作業ツリーファイルに入れておく。
作業ツリーファイルに入れておけば、『コミット』されない。

## .gitignoreはコミットしよう
一般的に.gitignoreはコミットしてソース管理するもの。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/939638/e9944142-abb1-b724-e052-bb1418f80b38.png)

## フェッチする

フェッチとはGitの機能の一つでリモートリポジトリの内容をローカルリポジトリに取得する機能で、取得するだけなので、実際にはローカルリポジトリや開発環境には反映されていない。リモートリポジトリの内容を仮でローカルリポジトリに置いている状態。
その為、開発環境上での内容の確認、変更を行うことはできない。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/939638/b172d4e2-2757-10ba-e8c1-779efdc2c0d4.png)

## パターン2 フェッチアイコンからフェッチする
①Sourcetree上段メニューのフェッチアイコンをクリックして、フェッチを開始する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/939638/70eb3ede-e110-a5e3-7337-1c4d98fb6159.png)

②表示されたウィンドウの「全てのリモートからフェッチ」にチェックが入っていることを確認してから「OK」ボタンをクリックする。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/939638/771d7c81-b163-241e-16b8-167be77a7681.png)

## フェッチ後の動作

①上のどちらの方法でフェッチを行ったら、リモートリポジトリとの通信が行われ、
リポジトリの内容を取得する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/939638/c9aa7165-c150-be45-455b-ae7fd910243b.png)

②取得が終了するとコミットログの内容が変化する。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/939638/c5f72c3e-a960-4efd-1120-cc368e0fd93a.png)

これでSourcetreeを使用したフェッチの実行は終了。

## 参考サイト
[SourceTree ブランチを作成しマージする](https://itsakura.com/sourcetree-branch#:~:text=%EF%BC%91%EF%BC%8E%E3%83%96%E3%83%A9%E3%83%B3%E3%83%81%E3%82%92%E4%BD%9C%E6%88%90%E3%81%99%E3%82%8B,-%E3%83%86%E3%82%B9%E3%83%88%E7%94%A8%E3%81%AE&text=%EF%BC%91%EF%BC%8E%E3%83%96%E3%83%A9%E3%83%B3%E3%83%81%E3%82%92%E3%82%AF%E3%83%AA%E3%83%83%E3%82%AF%E3%81%97,%E5%AE%8C%E4%BA%86%E6%99%82%E3%81%AE%E7%94%BB%E9%9D%A2%E3%81%A7%E3%81%99%E3%80%82)
[SourceTreeで無視リスト=.gitignoreに追加・削除する](https://tech.noricgeographic.com/sourcetree%E3%81%A7%E7%84%A1%E8%A6%96%E3%83%AA%E3%82%B9%E3%83%88-gitignore%E3%81%AB%E8%BF%BD%E5%8A%A0%E3%83%BB%E5%89%8A%E9%99%A4%E3%81%99%E3%82%8B/)
[Sourcetreeでフェッチする](https://yttm-work.jp/git/git_0008.html)