GUIを持つGitクライアント TortoiseGit をで使ってみる

# はじめに
## 概要
gitを初めて使う人向けに、Windowsで動作するGUIをもつgitクライアント **TortoiseGit** を導入を説明するときのためのメモ。あくまで「とっかかり」用です。
ツールとして、SourceTreeも検討したがアカウント登録手順を書くのが面倒そうだったので挫折した。

## 動作確認環境
Windows 10 Home/Pro(64bit)

# 導入手順
## 初期設定

### Git for Windows 
* ダウンロード＆インストール

https://gitforwindows.org/ にアクセスし、Downloadをクリックして、インストーラーをダウンロードし、実行してインストール。確認時点のバージョンは 2.17.1(2) の Git-2.17.1.2-64-bit.exe。インストーラで指定できる設定項目は、特に指定が無ければ変更なしでＯＫ。
バージョンを指定する場合は https://github.com/git-for-windows/git/releases から、インストールするPCのbit数に応じた Git for Windows の実行ファイル(exe)をダウンロードする。

* git初期設定

スタートメニューの中の「Git Bash」を起動する。新しく開いたGitBashのウィンドウ（黒い画面）の中で、下のコマンドを実行し、自分の情報を設定しておく。

```
$ git config --global user.email "mail@exsample.com"
$ git config --global user.name "YourName"
$ cat .gitconfig  　　# 単なる確認
[user]
        name = YourName
        email = mail@example.com
```

### TortoiseGit
* 本体のインストール
 
TortoiseGitのダウンロードページ https://tortoisegit.org/download/ から、
から for 64-bit Windows の下にある Download TortoiseGit - 64-bit をダウンロードして実行。32bit版の場合は、32bit用をダウンロードする。

確認時点のバージョンは 2.6.0.0。インストーラー起動後、ドキュメントの確認は Next をクリック。Choose SSH Client 画面では、openSSH に変更して Next、custom setup はなにも変更せず Next をクリック。最後に、インストール実行をクリック。
インストール完了後、Run first start wizardのチェックを外して Finish。

* 日本語化

本体と同じダウンロードページの Japanese 行のSetupをダウンロードし実行する。bit数を間違えないように注意。
インストール完了後、Configure TortoiseGit to use this language にチェックを付けてから完了。

# 使い方

##　基本的な使い方

### 準備

　ローカルに保存するための適当なフォルダを作成。例えばデスクトップに、Git という名前のフォルダを作成する。

### git clone（複製）
　
リモートからローカルに、登録されたファイル一式を複製します。

* 取り出すフォルダを右クリックし、git クローン（複製）をクリック
* URL欄に、github/gitlabなどのgitサーバサー場のURLを記入
* 「OK」をクリック

新しくgitから取り出したファイルがあるフォルダができているはず。ワークスペースと呼ばれることもあるが以降は「gitフォルダ」と表記します。

### ソースの編集

gitフォルダ内の任意のファイルを任意のエディタで編集します。

新しくファイルを追加した場合は add（追加）、削除した場合は rm（削除）を実行する必要が
あります。


### git commit （ローカルに更新をコミット）

更新したファイルをローカルに登録します。この「コミット」は使っているローカルのPCにのみ保存されます。（＝他の人には伝わりません）

* gitフォルダを右クリックし、「git コミット」 をクリック。
* メッセージ欄に、後でどのような修正かわかるような説明を簡潔に記入します。
* 変更した項目を確認。必要に応じて修正
* さいごに「コミット」をクリック

メッセージ欄には絵文字はもちろん①などの環境に依存する文字は使わない方が望ましい。

### git push （リモートサーバへの同期）

ローカルで登録した更新をリモートと同期します。このpush操作が完了するまでは、編集／コミットした内容は、他の人の環境に反映されません。

* gitフォルダを右クリックし、「git 同期」 をクリック。
* 念のためローカルブランチと、同期するリモートブランチを確認
* 内容に問題が泣ければ「プッシュ」をクリック
 
### git pull （リモートサーバから同期）

リモートサーバに登録された更新を、ローカルに複製します。このとき、他の人が行ったコミットが取り込まれます。

* gitフォルダを右クリックし、TortoiseGitの中にある「プル」をクリック。
* 各項目に問題がなければ「OK」をクリック

ローカルで修正した内容と、他の人のコミットに矛盾があると、コンフリクトが発生しますので、修正の対応が必要になります。

※　下記のようなエラーが出た場合は、git for Windows の最新版を再インストールしてみてください。

```
git.exe pull error: cannot spawn git: Invalid argument
```

## ちょっと高度な使い方

### git ckeckout （ブランチの変更）

ファイル編集する対象のブランチを変更します。

* gitフォルダを右クリックし、TortoiseGit の「切り替え」を選択
* 取得したいリモートのブランチを指定
* 新しいリモートブランチを指定すると、自動で[Create New Branch] にチェックが入り、リモートと同名のローカルブランチ名が入る
* 内容を確認して一番下の「OK」をクリック

### git branch （ブランチの作成）

他の人の修正と競合しないように、ローカルに自分専用のブランチを作成する事もできます。

* gitフォルダを右クリックし、TortoiseGit の「ブランチを作成」を選択
* 新しいブランチ名を入力し、そこに複製するブランチを指定
* すぐに新しいブランチで作業する場合は、「新しいブランチに切り替える」にチェック
* 内容確認後、「OK」をクリック。

このローカルブランチで行った修正を、他の人に使ってもらう＝リモートサーバに反映するには、一般には、merge（マージ／結合）を行います。
編集を取り込み先のブランチに移動したのちに、TortoiseGit の「マージ」を選択し、取り込み元のブランチを指定します。

# 参考

以下の頁を参考にしました。

* https://qiita.com/SkyLaptor/items/6347f38c8c010f4d5bd2
* https://www.granfairs.com/blog/cto/tortoisegit-checkout-remote-branch
* https://eng-entrance.com/sourcetree