初めてのGit　基本①branchと②logとcommit

## 初めに
どうも。現在python歴3か月で今年に転職を目指す者です。

今回もgitの実装をできる限りシンプルに説明したいと思います。
様々な機能があるみたいですが、ファーストステップとしてこちらの記事を参考にして頂ければ幸いです。

今回は<font color="red">branchの生成と切り替え</font>をメインに扱います。
次のステップとして<font color="red">gitのログ確認とコミットを戻して途中から始める方法</font>についても
参考記事を紹介いたします。

### 関連記事
CUIやgitそのものに馴染みがない方々向けにこのような記事を作成致しました。

- [cmdの簡単なまとめ](https://qiita.com/The_Boys/items/50d608f139e04f157d19)
- [git実装前に確認したい概要や用語](https://qiita.com/The_Boys/private/cfdb09f7ceead0d9bd6f)
- [gitの実装](https://qiita.com/The_Boys/private/aa85e1d6d107b5802f73)

### 環境
windows11 home

### 前回までのあらすじ

[前回の記事はこちら。](https://qiita.com/The_Boys/private/aa85e1d6d107b5802f73)
前回でgitのセットアップ手順と基本的構築を行いました。
前述の通り､今回の学習はブランチの生成や切り替えを等の学習を記載致します。

### ①ブランチ

ブランチとは履歴の流れを分岐して記録していく手法です。
分岐したブランチは他の影響を受けないため、同リポジトリ中で複数の変更を同時に進める事が可能です。

![a.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2719278/45e61562-038c-bcaf-5226-075d0a89f940.png)


#### ブランチ作成(Masterからの派生)

早速branchを生成しましょう。git bash内で

`git checkout -b add_Mori`　と入力すると､

新たにadd_Moriというブランチが作成れます。
git bash右側にどのブランチをいじっているか確認する事が出来ます。

![2022-07-19_19h53_44.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2719278/8de105bf-9f0c-5a4b-8e75-aeeb1b72b909.png)


#### brnchから移動。/masterから移動。
現在の場所からbranch/masterへ移動します。

`git checkout master`　　この場合はmasterへ移動します。
`git checkout add_Mori`　この場合はbranchのadd_Moriへ移動します。

このように生成したbeanchや元のmasterにはgit bashのコマンドを打ち込んで行き来できます。

#### branchの名前を変更。
現在のbranch名を変更します。現在はadd_Moriというブランチ名ですが、Moriというブランチ名に変更してみましょう。

` git branch -m Mori` 

![2022-07-19_20h01_46.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2719278/4d25ae4a-fc55-bcdb-c45a-11dac1f9b963.png)

変更が適用されたことが確認できました。

#### branchの一覧表示。
`git branch` と入力することで現在存在するbranchの一覧を確認する事が出来ます。

![2022-07-19_20h36_18.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2719278/3bd30e59-3272-e75b-16f5-c13679373432.png)


**上記を踏まえた上でbranchでのデータ編集を行ってみましょう。**


<details><summary>具体的なbranchでのデータ編集</summary><div>

現在のブランチはMoriです。そこから下記のテキストを追加し保存しましょう。

`石炭をば早や積み果てつ。中等室の卓のほとりはいと静にて、熾熱燈の光の晴れがましきも徒り。｢舞姫｣`

そしてパターンで
`git add qiita_git.txt`
`git commit -m "舞姫"`　　としてみましょう。

これでMoriというブランチには新しいテキストが追加されたという事ですね。そしてMasterには何も追加されていないと。

![2022-07-19_20h16_06.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2719278/2f677c6d-c8b5-9a91-088e-f804b0fd9de5.png)

そしたら次に何するか、BranchからMaterに変更すれば舞姫の冒頭(上記の追加分)は表示されないと考えるのが普通ですかね。

まず初めにmasterに切り替えてみましょう。

![2022-07-19_20h22_48.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2719278/861466c6-5240-ed52-2e86-d7109d3899cf.png)

git bashにてmasterに切り替えても反映されていません。<font color="red">テキストに反映するにはどのようにすればよいでしょうか？</font>
`git fetch`　を使います。　そうすると、masterでのテキストが表示されます。

![2022-07-19_20h25_41.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2719278/01868316-cd0e-95de-894a-594eaccb29ef.png)





</div></details>

### ②logとリセット確認
一通り確認が済みましたら、下記の方法も試してみてください。
内容としては、実際に履歴を確認したり､コミットを戻して途中から始める方法が分かりやすく記載されております。
実はこちらの内容を次に書こうと考えたのですが、下記のサイトがあまりに分かりやすいのでその必要もないかなと思い…(笑)。


https://laraweb.net/environment/4723/

※**補足**
logを確認した後に任意のcommit codeでresetしたい場合は下記のようにしてみたらいかがでしょうか？

```python
$ git log --oneline --graph --decorate  #logの確認
$ git reset --hard 2cf8201              #{}を削除
```
{}がない状態ですと私の場合はうまく行きました。
リセットした後にテキストを確認して頂けると反映されているはずです。下記画像参照

![2022-07-21_14h42_02.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2719278/0b13390d-b206-99b0-1157-badf7ebd83bb.png)

![2022-07-21_14h44_28.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/2719278/c7613756-286f-b0ad-9754-37ee7913c72e.png)


### ③VScodeとgit
皆様gitはどのように使用していらっしゃいますでしょうか？
私は専らVScodeでwebアプリケーションで使用しております。
それ故VScodeとgitの紐づけも調べた結果、良い記事がありましたのでシェア致します。

https://qiita.com/y-tsutsu/items/2ba96b16b220fb5913be#%E3%83%97%E3%83%83%E3%82%B7%E3%83%A5%E3%81%99%E3%82%8B

git hub との連携はこちらがお勧めです。

https://miya-system-works.com/blog/detail/vscode-github/

## まとめ

まずは練習として沢山のbranchを生成して扱い少しづつ慣れてみましょう。
今回はごく単純ですが基本的な動作の一部を確認し、課題も見つかりました。
次回はその課題の対策やべうの基本操作も確認できればと思います。
まだまだ分からない事も多いので随時更新を行うつもりです。