Git講習第5話「ブランチの理解：作業の分岐点」

# この記事について
本記事は社内で実施したGit講習のスライドを元に作成された記事です。
Gitを使ってはいるものの、どういう構造になっているかとか仕組みについてはあまりわかっていないという方たちを対象にしています。
# 前回
https://qiita.com/sho_fcafe/items/68640ad3b90a99136bf0
# イントロダクション
![スクリーンショット 2023-07-12 13.54.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3476743/07c450a2-d4e9-ae32-ade4-20ab7d00d14c.png)
ここまでの説明の中で時々出てきた「ブランチ」について後輩ちゃんが気になっているようです。
今回はブランチについて学んで行きましょう。
# ブランチとは
ブランチは、リポジトリの異なるバージョンを指すものです。
ブランチは連続したコミットの塊で構成されており、ブランチから別のブランチを作成することで異なったバージョンの変更を行うことができます。
![スクリーンショット 2023-07-12 13.55.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3476743/4521a905-8926-2fd5-2aec-9bcdca9dbfa3.png)
# 競合
![スクリーンショット 2023-07-12 13.56.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3476743/d8fd2b45-b62a-982c-c381-eddaff18c957.png)
確かに枝分かれをしたものを統合した時に変更箇所が衝突してしまうことがありそうです。
ここでは競合について見ていきましょう。
# マージと競合
マージは、2つ以上のブランチを組み合わせて一つの単一ブランチにする過程を指します。
競合（コンフリクト）は、2つのブランチが同じ行を異なる方法で変更し、マージしようとしたときに発生します。
![スクリーンショット 2023-07-12 13.58.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3476743/a968e7e9-5f04-60a4-ccc4-944a8141c991.png)
## 競合を発生させてみよう
では、実際にブランチを作成して競合を発生させてみましょう。
前回までに作ったローカルリポジトリとリモートリポジトリを使います。

まず、ブランチをmainブランチに切り替えてみましょう
```bash
git checkout main
```
これを実行したところ、下記のように表示され、既にmainブランチになっていたことがわかります。
```
Already on 'main'
Your branch is up to date with 'origin/main'.
```
ここからbranchAというブランチを作成してみます
```bash
git checkout -b branchA
```
これを実行すると下記のように表示され新しくブランチが作成される共にそのブランチに切り替わったことがわかります。
```
Switched to a new branch 'branchA'
```
次にファイルの更新、インデックスに追加、コミットを実行します。
```bash
echo 'xxxxx' >> hello.txt
git add hello.txt
git commit -m "add xxxxx"
```
これでhello.txtにxxxxxという行が書き込まれて、ローカルリポジトリに書き込まれました。

今度はmainに切り替えた後にbranchAをmainにマージしてみましょう。
```bash
git checkout main
git merge branchA
```
これを実行すると下記のようにマージ結果が表示されます。
```
Updating 95954ba..f729c2e
Fast-forward
 hello.txt | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
```
![スクリーンショット 2023-07-12 17.39.41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3476743/302e1f44-f945-180b-6d88-7b3eac185d52.png)
## VSCodeの場合
![スクリーンショット 2023-07-12 17.44.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3476743/144635a3-26a2-4f73-87c9-334bd3b1829b.png)
![スクリーンショット 2023-07-12 17.44.34.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3476743/f718ffbe-7e6d-402c-5e11-adbf6cb7f7e7.png)
![スクリーンショット 2023-07-12 17.44.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3476743/520418f7-49d7-1aaf-02f6-4ce514ef70e5.png)
![スクリーンショット 2023-07-12 17.45.33.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3476743/ead7530e-67d1-6d97-6f4c-fcdbf64f77ab.png)
![スクリーンショット 2023-07-12 17.45.52.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3476743/63a7d218-1819-98cf-daf4-c66308504748.png)
![スクリーンショット 2023-07-12 17.46.10.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3476743/d1474af6-1908-e445-4a00-184a47e848ff.png)
![スクリーンショット 2023-07-12 17.46.29.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3476743/e8b784a0-1ff0-4588-31b0-923fb94dc0e5.png)
![スクリーンショット 2023-07-12 17.46.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3476743/b7dbb7be-b77a-8e44-0027-e5b0e9229f5e.png)
![スクリーンショット 2023-07-12 17.47.05.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3476743/52bfa35f-7fe8-9d3d-597f-005603e60f3e.png)
![スクリーンショット 2023-07-12 17.47.21.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3476743/d89d6c6d-8274-afc7-6aca-4a2c1dc8ec87.png)
![スクリーンショット 2023-07-12 17.47.39.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3476743/3c048048-ac93-3609-d244-82541fae74e3.png)
![スクリーンショット 2023-07-12 17.47.53.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3476743/6d1df7dc-5f29-3580-71a2-00f3f8a4bafc.png)
![スクリーンショット 2023-07-12 17.48.11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3476743/39207982-cb9a-0a27-2209-276df2eb5805.png)
## SourceTreeの場合
![スクリーンショット 2023-07-12 17.50.01.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3476743/6bb13cc1-b67e-d474-b272-3c88eeb35229.png)
![スクリーンショット 2023-07-12 17.52.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3476743/c07c623d-8b49-b0c9-336b-c21e887df8da.png)
![スクリーンショット 2023-07-12 17.52.38.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3476743/7c5e79af-a857-5b38-7e5c-bc3aa3786c3e.png)
![スクリーンショット 2023-07-12 17.53.04.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3476743/0566a78c-dffa-3434-0ec6-5e86f368d634.png)
![スクリーンショット 2023-07-12 17.53.19.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3476743/749674aa-2700-702a-f2a3-537f90b51051.png)
![スクリーンショット 2023-07-12 17.53.32.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3476743/82f12602-4668-f620-987a-93f6213953cc.png)
![スクリーンショット 2023-07-12 17.53.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3476743/ef938495-8cd9-4611-8cd3-efcc84de2fc1.png)
![スクリーンショット 2023-07-12 17.53.54.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3476743/5fa8bc2a-69cc-7419-d972-9432814896d9.png)
![スクリーンショット 2023-07-12 17.54.07.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3476743/89de3d23-76ca-38b2-b2a6-b73666f2f9fe.png)
![スクリーンショット 2023-07-12 17.54.18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3476743/fbf4eb58-43f6-3c64-3b27-e68b3444fe75.png)
![スクリーンショット 2023-07-12 17.54.31.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3476743/8fecd40a-42f1-80de-d9d2-0cedcf325e84.png)
![スクリーンショット 2023-07-12 17.54.42.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3476743/9df026cf-b4dc-b7ef-8c13-6e9178a8616c.png)
![スクリーンショット 2023-07-12 17.54.57.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3476743/4ee99063-5386-7155-c209-cee57bb6ac4e.png)
![スクリーンショット 2023-07-12 17.55.08.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3476743/0b5568b5-ba31-c394-0932-cf8154e610e1.png)
# 次回
第6話「ブランチの流れを整理：リベースの導入」へと続きます
https://qiita.com/sho_fcafe/items/104057c0c5e22d59527d