NITICNoobsによるGit/GitHub講座 第1回 ～インストールしてみよう～

# 自己紹介
[こるく](https://twitter.com/Colk_)といいます。
[限界開発鯖](https://approvers.dev) とかいう~~ヤバい~~開発者コミュニティに所属している茨城の高専生です。
今回からn回に渡り、「Gitを触ったことがない」という方のために、私と他3人でGitとGitHubの使い方を**ゼロから**伝授していきます。

**※とりあえずGitをインストールしたい人は[こちら](https://qiita.com/Colk-tech/items/e75c61146cabc887ad29#%E3%82%A4%E3%83%B3%E3%82%B9%E3%83%88%E3%83%BC%E3%83%AB)**

# はじめに

![1920px-Git-logo.svg.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542505/3456576e-300c-37ff-74f4-e15ca1165e72.png)
Git公式ロゴ

この記事は、**茨城高専の2I向け**に執筆された記事です。
**実際に手を動かしなら読み進めてください。**

## Gitとは？
Gitとは、**ソースコード**（実際に書かれたプログラムのこと）を**円滑**に管理することができるソフトウェアです。
ソースコード以外にも、テキストファイルなら何でも管理できます。
[小説](https://qiita.com/ktkraoichi/items/f6ad43c2da0b3136d6be)やレポートをGit管理してもいいでしょう。
現在、IT業界の**デファクト・スタンダード**です。
**エンジニア、エンジニアになりたい人みんなが使っています。**
人権といっても過言ではありません。
さらに**共同開発**に向いています。

## メリット
「**フォルダが汚くなりがち。**」
「**きちんとファイルを体系立てて管理したい。**」
そう思ったことはありませんか？

Gitは、**それを叶えるソフトウェア**です。

このフォルダを見てください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542505/de1cbfab-af60-9b93-3c5b-bab06eb43574.png)
どう感じたでしょうか。

Gitをつかえば、**こんなファイル管理とはおさらばです。**
面倒な管理を、**あなたに代わってやってくれます。**
（~~あと使ってるとかっこいい~~）

バージョン間で、

- どこが変更されたのか （diff表示）
- 誰が変更したのか
- それは何のためなのか （コメント）

といったことの管理を**自動で**やってくれます。

▼ こんな感じです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542505/8879b6cc-3fa6-9946-294c-0dcd38026fce.png)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542505/2d7e769a-14c8-2b28-798c-f4757748114f.png)

しかも、**バージョンを指定するだけでそのバージョンに戻れたりもします。**

後述しますが、他の人と並行して作業し、お互いの作業の成果物を結合させる、なんてことも出来ます。

と、このようなメリットがあるので共同開発においてGitやGitHubは必要不可欠な存在になります。

逆に、Gitを使わずに共同開発をしようとするとどうなるのでしょうか。

## Gitを使わないと...？
- ファイルの共有にslackやメール、dropboxなどを用いる必要がある。
- 次の作業に移るごとにバックアップをいちいち作る必要がある。
- いつ、だれが、どこを編集したのかわからない。
- 複数人で並行作業した際に、その作業をまとめるのに時間がかかる。

地獄ですね、絶対にこんな開発はしたくありません。確実にハゲマス。

# インストール！
では、Gitの素晴らしさがわかったところで、実際にWindowsにGitをインストールしてみましょう。

## ダウンロード
まず、以下のリンクに飛びます。
[Git - Downloading Package](https://git-scm.com/download/win)

▼ Gitのダウンロードページ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542505/71a1b406-178f-58c5-d16e-76dd902b708a.png)

ほとんどの場合、`64-bit Git-for Windows Setup`を選択しておけば問題ありません。
自分の環境にあったものをダウンロードしてください。

## インストーラーの起動
ダウンロードしたファイルをクリックしてインストーラーを実行しましょう。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542505/8d872520-f8e5-8cc2-a08e-c33c845ba6c6.png)

ライセンス条項が出てきます。
内容を確認して、問題がなければ`Next`をクリック。

## インストール先の設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542505/458cb86a-4603-e9d3-4a21-01dd94d8661c.png)

ここではインストール先を設定することが出来ます。
お好みで設定していただいて構いませんが、**特別な事情が無い限りそのままにしておきましょう**。

## オプションの調整
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542505/70d68e5e-35b3-8f2c-ccfc-d814d57d5da8.png)

基本的にデフォルトのままで構いません。
`Use a TrueType font in all console windows`はデフォルトでは無効ですが、後述する「**Git bash**」の文字がなめらかになります。
デスクトップにGit bashのショートカットを作成したい場合は、`On the Desktop`を選択してください。

## スタートメニューの設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542505/465c8581-7b47-e5e1-8bd7-8dd809787785.png)

Gitをスタートメニューに追加するかどうか尋ねられます。
追加したくない場合、`Don't create a Start Menu folder`を選択してください。

▼ Windowsのスタートメニュー
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542505/14d41cf1-077b-45fb-6829-b66de205d17a.png)

## デフォルトのテキストエディタの設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542505/b37bec11-383c-6918-dcab-1116bd60ef21.png)

Git bash内でテキストを書くとき、どのソフトウェアを使うかの設定です。
デフォルトでは`Vim`ですが、初心者にはおすすめしません。
`Visual Studio Code as Git's default editor`選択することをおすすめします。
`VS Code`を選択する場合、事前にインストールされている必要があります。
`VS Code`はプログラムを書く際のソフトウェア（エディタ）として、かなり有名です。
入れておいて損はないでしょう。
（※ 余談ですが筆者はJetBrains IDE信者です）

▼ VS Code の導入記事
[VisualStudioCodeのインストールと日本語化](https://breezegroup.co.jp/201904/visualstudiocode/)

## 環境変数の設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542505/666da660-4863-d308-76de-e68a0b149c4c.png)

Gitを使うにあたり、どのような環境にするか聞いてきます。
特に理由がなければ、`Git from the command line and also from 3rd-party software`を選択。

## 接続方式の設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542505/a529247d-f526-1102-4453-8b2ebe81ae04.png)

後述する「リモートリポジトリ」を利用する際に、どのような接続方式を用いるか設定することが出来ます。
特に理由がなければ、`Use the OpenSSL library`を選択しておくと後々幸せになれます。

## 改行方法の選択
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542505/7dd88dee-42f0-eb0e-a38a-180ef6298ea1.png)

WindowsとUNIX系のOS（macOSやLinuxなど）では、システム内で「***改行***」を表す方法が異なります。
そのため、後述する「コミット」時に、Windowsの方法のままにしておくか、UNIX系の方法に修正するかどうか聞かれます。
特に理由がなければ、`Checkout Windows-style, commit Unix-style line endings`を選択。

## Gitが利用するターミナルエミュレーターの設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542505/5be6cf30-d750-1a15-d046-aaa2ff3906e5.png)

Gitでは、文字で命令を入力して使います(`CLI`) 。
(`GUI`でGitを扱う方法もありますが割愛します)

この画面では、デフォルトでWindowsに入っている`Command Prompt`を使うか、新たに`MinTTY`を導入するか聞いてきています。

基本的に`Use MinTTY (the default terminal of MSYS2)`を選択しておくことをおすすめします。

## `git pull` コマンドの挙動の設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542505/fefc232b-775d-1402-14b7-ba2507336c5e.png)

`git pull`コマンドにどのような挙動をさせるか設定できます。

今はとりあえず`Default (fast-forward or merge)`を設定しておいて問題ありません。

※`git pull`については[第7回](https://qiita.com/isso0424/items/a7a0816d9a7f0caf1de6)で解説しています。

## その他の設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542505/dcd86b78-60a4-5702-8036-c3c65b6a132f.png)

細かいの設定を調節することが出来ます。
デフォルトのままで問題ありません。

## 実験的機能の設定
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542505/c074f343-908b-565e-ad62-60dedc619531.png)

実験的な新機能を追加するかどうか聞いてきます。
気になる方は選択してみましょう。
ですが実験的な機能は不安定なことも多いので、無理に有効にする必要はありません。

## もうひといき！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542505/ab3b4c0e-59cc-a039-4eb8-da46e1976ae5.png)

インストール時の設定はこれで完了です。
後は自動でインストールを進めてくれます。

## 完了！
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/542505/5cacf9a8-eca4-09f4-0b3b-6cd7b1fee79c.png)


この画面でインストールは完了です。
すぐに触ってみたい人は`Launch Git Bash`を選択しておきましょう。

`Next`をクリックしてインストールの作業は完了です。
お疲れさまでした！

# ここだけ覚えて！今回のまとめ！
✅ Gitは、バージョン管理システムである。
✅ Gitは、現在のIT業界のデファクト・スタンダードになっている。
✅ Gitは、共同開発で多く使われる。

# リンク
#### **次回**
[NITICNoobsによるGit/GitHub講座 第2回 ～設定しよう～](https://qiita.com/Colk-tech/items/f0817df7c6fdc9a7f283)

**[第1回](https://qiita.com/Colk-tech/items/e75c61146cabc887ad29)** インストール編
**[第2回](https://qiita.com/Colk-tech/items/f0817df7c6fdc9a7f283)** 設定編
**[第3回](https://qiita.com/Colk-tech/items/8d4b28b9001b862eeb99)** 実際に使ってみよう-基本技能編
**[第4回](https://qiita.com/Flisan/items/e6398225905e0ed906dc)** ブランチ(平行世界)編-1
**[第5回](https://qiita.com/Flisan/items/6afd47345fdca42f1c3c)** ブランチ(平行世界)編-2
**[第6回](https://qiita.com/ko_5/items/c0c45c80f12e0072e51e)** GitHub入門編
**[第7回](https://qiita.com/isso0424/items/a7a0816d9a7f0caf1de6)** fetch/pull編
**[第8回](https://qiita.com/isso0424/items/6fc09a68bf0011dfc922)** issue/Pull Request編

# 執筆者
- [いっそう](https://twitter.com/kousou4129)
- [こ](https://twitter.com/ko_CottonLove)
- [こるく](https://twitter.com/Colk_)
- [フライさん](https://twitter.com/loxygenK)