有用性を理解するための、頑張らないGit入門

# 概要
頑張らずにGitの最低限の有用性と使い方を理解できるような、VSCodeとGitの使用例を簡潔に紹介する。

# Gitの習得にあたっての課題
バージョン管理システムのGitは大変有用なツールであるが、**学習コストが高い**のが難点である。ITエンジニアの方にとっては必須のスキルであり、学習コストが高かろうと習得するものと想像する。一方、私のような非IT企業・非IT職の場合は必須といえるスキルではないため、習得するには**各人の目的意識と学習意欲**が必要である。しかし、入門向けの解説から押し寄せる横文字の用語に圧倒され、Gitの有用性が本質的に理解できないまま、目的意識と学習意欲が固められずに挫折してしまう人が多いように感じる。

ここでは、難しい用語の説明などはすっ飛ばして、**最低限の有用性と使い方を理解できるような使用例**を紹介する。

# Gitを使うための準備
Gitを使うにはいくつかツールが必要になる。ここでは必要なツールとそのインストール方法や初期設定について説明する。

## 必要なツール
Gitを使うためには下記のツールが必要である。ここではWindows環境を想定している。

- **Git for Windows**
    - WindowsでGitを使うための本体
- **Visual Studio Code (VSCode)**
    - Gitとの親和性の高いコードエディタ
- **Git Graph**
    - VSCodeでGitを視覚的に利用できるVSCodeの拡張機能
    - これと類似の拡張機能として Git History というものもある。基本的な機能は同じなのでお好みでどちらかを使えばOK。

:::note
Gitを使うだけなら Git for Windows さえあれば問題ない。しかし、コーディングからシームレスにGitの操作が可能で、Gitのコマンド操作も必要なく、関連情報も豊富なコードエディタとしてVSCodeを使った方法を紹介する。
:::


## インストール方法
詳細なインストール手順は省略するが、それぞれ公式サイトからインストールする。

### Git for Windows

https://gitforwindows.org/

### Visual Studio Code (VSCode)

https://code.visualstudio.com/

:::note
基本的にインストーラーのデフォルト設定で問題ないが、「追加タスクの選択」では下記のようにチェックを入れておくと、この後の手順を含め普段の操作が快適になる。

![vscode_setup.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/591150/8e270ce1-ef19-3a77-1b32-0b150c478cd4.png)
:::

### Git Graph
Git GraphはVSCodeの拡張機能なので、先にVSCodeのインストールが必要である。

https://marketplace.visualstudio.com/items?itemName=mhutchie.git-graph

## Gitの初期設定
Gitを使うためにはあらかじめユーザー名とメールアドレスの設定が必要である。コマンドプロンプトやPowerShellを起動し、下記の2つのコマンドを入力する。

```shell
git config --global user.name "hoge huga"
git config --global user.email "hoge@example.com"
```

:::note warn
この記事で紹介する範囲の操作であれば、ここで設定したユーザー名とメールアドレスはインターネット上に公開されることはない。ただ、Gitを習得していくうちにGitHubを使い始めたりする機会があるかもしれないので、公開されても困らないユーザー名とメールアドレスを設定しておくこと。後から変更することも可能である。
:::


# Gitの有用性が理解できる最低限の操作例
ここから本題である。プログラムの開発にあわせてコミット（変更履歴の記録）を行い、後からその変更履歴を確認するGitの基本操作を紹介する。

## Step1 バージョンを管理したいフォルダにリポジトリを作成する
まず、Gitで管理したいフォルダをVSCodeで開く。

:::note
前述のVSCodeのインストール手順で **「追加タスクの選択」の設定をしていた場合、エクスプローラーの右クリックメニュー「Open with Code」から開ける**ので、すぐにVSCodeを起動できる。設定を行っていなかった場合は、VSCodeを先に開いてメニューの「フォルダを開く」から開いても問題ない。
![open_vscode.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/591150/f02f00f7-20aa-68aa-3ff1-f2403ae7d6b4.png)
:::

VSCodeが開いたら、左端の「Y」のようなアイコンをクリックし、「ソース管理」メニューが開く。その右に出てくる「リポジトリを初期化する」ボタンをクリックする。
![init_repository.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/591150/35954aa4-2534-e01c-5a84-56af59233f40.png)

これでリポジトリの作成は完了である。

## Step2 ファイルの作成と1回目のコミット
次に、これからバージョンを管理するファイルを作成する。左端のサイドバーからドキュメントのアイコンを押し、その右に出てくる「新しいファイル」アイコンをクリックし、ファイルを作成する。テキストファイルであればファイル名や拡張子は何でもよい。ここでは例としてPythonスクリプトを作成した。
![create_file.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/591150/a09f4c16-fd5b-6d1f-10a4-68922117842a.png)

その後、「ソース管理」のメニューに戻ると、作成したファイルが表示されていることが確認できる。画像のようにメッセージを入力し、Ctrl + Enterでコミットを行う。
![first_commit.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/591150/728cfebb-5f85-5fac-a421-7bbb46fdee8a.png)

警告が出てくるが、今は気にせず「はい」で問題ない。
![commit_warning.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/591150/80ab973d-c22d-e2d7-7f21-6c04780f51aa.png)

これで「ソース管理」のメニューからファイルが消えれば、1回目のコミットは完了である。

## Step3 2回目以降のコミット
次に、ソースコードに何か追記するなどの変更を加える。これは実際の開発のように変更を加えていく作業にあたるものである。
![modify_code.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/591150/d34492c1-86a1-45a4-26b0-5c9715627fd6.png)

変更を加えると、また「ソース管理」メニューに変更したファイルが表示される。1回目と同様にメッセージ入力とコミットを行う。
![second_commit.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/591150/abe0961e-01ec-0da6-6b7c-e42ece48d0d3.png)

これで2回目のコミットは完了である。3回目以降のコミットを行う場合もこの繰り返しの操作となる。

## Step4 以前のバージョンのソースコードを確認する
以上のコミット操作によりソースコードがバージョンごとに記録されている。これをGit Graphを使って確認する。「ソース管理」メニューにあるグラフのアイコンをクリックし、表示される画面から2回目のコミットの部分をクリックし、その中のソースファイル名をクリックする。
![git_graph.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/591150/f215f48c-1323-3a81-c1db-51c68a5c0576.png)

すると、左右に分割された画面に1回目、2回目のコミットの時点のソースファイル表示され、変更箇所を示してくれる。
![check_diff.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/591150/c4e485cd-44b2-f4b5-19e7-a39b7438194e.png)

以上がVSCodeを使ったGitの基本操作であり、開発にあわせて随時コミットを行うことで後からいつでも変更履歴を確認することができる。**これを活用することで、ファイル名を変えてバージョンを管理するような煩雑な方法から開放され、スマートなバージョン管理が実現できる。これがGitの有用性である。**

# まとめ
ここで紹介した使用例はあくまで簡単な例であるが、ファイル名を分けて管理するようなバージョン管理方法と比べると、これだけでもソースコードのバージョン管理がかなり快適になるのではないだろうか。共同開発を行うような場合はより複雑な操作が必要になってくるが、私のような非ITエンジニアにとってはこれだけでも十分有用な使い方と感じられたので、参考になれば幸いである。

# 有用性がなんとなくわかった方は
あとは必要な操作をその時々に調べたり、サル先生を見るとよいでしょう。

https://backlog.com/ja/git-tutorial/