TortoiseGitの導入とGitLabへの接続方法

![Windows10-v1709--x86_64](https://img.shields.io/badge/Windows10-v1709--x86_64-yellow) ![Git for Windows-2.17.1.2](https://img.shields.io/badge/Git for Windows-2.17.1.2-yellow) ![TortoiseGit-2.6.0](https://img.shields.io/badge/TortoiseGit-2.6.0-yellow)

Windows上にTortoiseGitを導入してGitLab上のリモートリポジトリに接続するまでの手順のメモです。
リモートリポジトリ接続時にはSSH公開鍵認証を行います。

## インストーラーのダウンロード
以下のサイトからGitクライアントをダウンロードします。
https://git-for-windows.github.io/

以下のサイトからTortoiseGit本体と言語パックをダウンロードします。
https://tortoisegit.org/


## Git for Windowsのインストール
TortoiseGitは裏でGit for Windowsを使用していますので、先に入れておきましょう。

Git for Windowsインストーラーをダブルクリックで起動し、ライセンス情報を一読して次に進みます。
<img width="512" alt="" src="https://qiita-image-store.s3.amazonaws.com/0/97774/941ba08d-9874-eb9a-9873-04edf20e51eb.png"/>

インストール場所はそのまま変更せずに次へ進みます。
<img width="512" alt="" src="https://qiita-image-store.s3.amazonaws.com/0/97774/60031760-dd92-961d-13ac-2b2fe69674f4.png"/>

要らなそうなコンポーネントを外して次へ進みます。
<img width="512" alt="" src="https://qiita-image-store.s3.amazonaws.com/0/97774/bd077ed4-6399-d0e1-a383-37552202f784.png"/>

スタートメニューへの登録はそのまま変更せずに次へ進みます。
<img width="512" alt="" src="https://qiita-image-store.s3.amazonaws.com/0/97774/eb31261b-2021-bafa-52ee-829989284469.png"/>

デフォルトエディターに関しては特に使うこともないと思いますので `Use the Nano editor by default` を選択して次へ進みます。
<img width="512" alt="" src="https://qiita-image-store.s3.amazonaws.com/0/97774/75d03344-4dc4-fb53-2198-2edea9f3e88e.png"/>

環境変数では必ず `Use Git from Git Bash only` を選択しましょう。
ここで `Use Git from the Windows Command Prompt` にしてしまうと、コマンドプロンプトがGitBashに乗っ取られて非常に使い辛くなってしまいます。
<img width="512" alt="" src="https://qiita-image-store.s3.amazonaws.com/0/97774/f514aa43-6101-c491-4641-927b6bf6637d.png"/>

HTTPS接続時に使用するSSLコンポーネントは、`Use the OpenSSL library` を選択して次に進みます。
<img width="512" alt="" src="https://qiita-image-store.s3.amazonaws.com/0/97774/e94126db-9e6c-95bd-b2fe-16182081f1c3.png"/>

改行コードの変換動作については `Checkout as-is, commit as-is` を選択しましょう。
他を選択すると、チェックアウトやコミット時に勝手にファイルの改行コードが書き換えられてしまいます。
<img width="512" alt="" src="https://qiita-image-store.s3.amazonaws.com/0/97774/8d96e199-bccf-c62c-2c0d-3b321fd36feb.png"/>

ターミナルエミュレータは `Use MinTTY` のまま次に進みます。
<img width="512" alt="" src="https://qiita-image-store.s3.amazonaws.com/0/97774/a741335a-9059-a87c-784d-a663cb3e1b24.png"/>

その他のオプションについては変更せず、インストールを開始します。
<img width="512" alt="" src="https://qiita-image-store.s3.amazonaws.com/0/97774/e59b4d27-e9ec-2e1b-292d-011ecb8cfdf9.png"/>

インストールが完了したらインストーラーを終了します。そのまま初期設定を行うので余分なチェックは外して置いて下さい。
<img width="512" alt="" src="https://qiita-image-store.s3.amazonaws.com/0/97774/4a77b5f9-ac26-e83d-2250-291c1a5e5357.png"/>

スタートメニューの中に追加されている `Git Bash` を起動します。
<img width="378" alt="" src="https://qiita-image-store.s3.amazonaws.com/0/97774/39be20b3-d6e1-16f9-f030-3a2acb6813ba.jpeg"/>

GitBash上で以下のコマンドを実行して自分の情報を設定します。こうすることでコミットなどの際にこの情報がデフォルトで使用されるようになる。

```shell-session:
$ git config --global user.email "メールアドレス"
$ git config --global user.name "名前"
$ exit
```


## TortoiseGitのインストール
TortoiseGitインストーラーをダブルクリックで起動して次に進みます。
<img width="512" alt="" src="https://qiita-image-store.s3.amazonaws.com/0/97774/6b45bd5a-614d-480b-1a2b-24859a3e567e.png"/>

ライセンス情報を一読して次に進みます。
<img width="512" alt="" src="https://qiita-image-store.s3.amazonaws.com/0/97774/52d9ead2-c938-aef1-ae28-c799502200d4.png"/>

SSHクライアントは"TortoiseGitPlink..."を選択して次に進みます。
<img width="512" alt="" src="https://qiita-image-store.s3.amazonaws.com/0/97774/1bb70af5-2d68-6008-0527-4102d04f13f3.png"/>

インストール先はそのままで次に進みます。
<img width="512" alt="" src="https://qiita-image-store.s3.amazonaws.com/0/97774/566b6792-3d2a-4fa0-3a45-ad04e126cf20.png"/>

インストールを開始します。
<img width="512" alt="" src="https://qiita-image-store.s3.amazonaws.com/0/97774/612d1c8b-a545-8cca-0fc1-731dcc82930f.png"/>

インストールが完了したらインストーラーを終了させます。日本語化ををこのまま行うのでチェックボックスは外しておいて下さい。
<img width="512" alt="" src="https://qiita-image-store.s3.amazonaws.com/0/97774/07a55bd9-9314-4bd4-661a-3c728b3a7ad3.png"/>

TortoiseGit日本語インストーラーをダブルクリックで起動して次に進みます。
<img width="512" alt="" src="https://qiita-image-store.s3.amazonaws.com/0/97774/ea1abce4-e3f0-510d-1c3e-bc86b79168ab.png"/>

日本語セットアップが完了しましたら `Configure TortoiseGit to use this language` にチェックを入れてセットアップを完了します。
<img width="512" alt="" src="https://qiita-image-store.s3.amazonaws.com/0/97774/23fb2d8d-0312-5604-3a39-319f57f1ce1f.png"/>

## 公開鍵の生成
公開鍵認証によるSSH接続を行うため、事前にクローン先コンピューターにて公開鍵と秘密鍵のペアを生成します。

プログラム一覧のTortoiseGitの中にある"PuTTYgen"を起動し、`Generate`をクリックします。
<img width="512" alt="" src="https://qiita-image-store.s3.amazonaws.com/0/97774/f8950a25-69bb-2c43-8f6d-bfa301cd6d3d.png"/>

上部のゲージがいっぱいになるまで、空白部分上でマウスカーソルを動かします。
<img width="512" alt="" src="https://qiita-image-store.s3.amazonaws.com/0/97774/dba00f22-463b-fb25-e7f1-0b5dd01c3b09.png"/>

公開鍵が生成されて表示されるので、すべてコピーしておいて下さい。その後 `Save private key` を押します。
ちなみに `Key passphrese` にパスフレーズを入力することで、秘密鍵にパスワードを掛けることもできます。
<img width="512" alt="" src="https://qiita-image-store.s3.amazonaws.com/0/97774/f4a9e243-33ec-6a52-7789-93370ca251e7.png"/>

パスフレーズをかけていない場合警告が出ますが、無視して `はい` で進めて下さい。
<img width="512" alt="" src="https://qiita-image-store.s3.amazonaws.com/0/97774/36bb81b1-eee8-8446-f5d9-13b72aba6881.png"/>

秘密鍵ファイル(*.ppk)を適当な場所に保存します。
<img width="512" alt="" src="https://qiita-image-store.s3.amazonaws.com/0/97774/226630a3-37e0-b7ec-2892-f74e28e7f538.png"/>

### 公開鍵をコピーし忘れてしまった場合
PuTTYgenを起動し `Load` から秘密鍵を読み込ませると公開鍵を確認することができます。
<img width="512" alt="" src="https://qiita-image-store.s3.amazonaws.com/0/97774/4e083aae-365a-9f24-afe4-0c73beb04cdd.png"/>

## GitLabへのSSH公開鍵登録
GitLabのアカウントに公開鍵を登録します。

GitLabログイン後の画面の右上にあるアバターを展開し`Settings`を開いて下さい。
<img width="512" alt="" src="https://qiita-image-store.s3.amazonaws.com/0/97774/561eb222-6559-174f-da09-5bbcc183709d.png"/>

画面左側にある `SSH Keys` を選択します。
<img width="512" alt="" src="https://qiita-image-store.s3.amazonaws.com/0/97774/c20d5a96-859b-dd5c-5eca-6d3cad5271e5.png"/>

SSH鍵登録画面が表示されるので、`Key`部分に**公開鍵文字列**を貼り付け、`Title`に好きな名前を入力して `Add key` を押します。
<img width="512" alt="" src="https://qiita-image-store.s3.amazonaws.com/0/97774/b32ca734-9e87-3e39-80f3-cb9ddb9631c3.png"/>

公開鍵が登録されました。
<img width="512" alt="" src="https://qiita-image-store.s3.amazonaws.com/0/97774/5c392212-b70d-c22a-0eea-397f310c240c.png"/>

## GitLab上のリモートリポジトリをクローン
いよいよリポジトリをクローンします。まずはGitLabリポジトリの**SSH**接続文字列をコピーしてください。
<img width="512" alt="" src="https://qiita-image-store.s3.amazonaws.com/0/97774/eb13cc55-f035-ce5c-8414-c66711c032b3.png"/>

エクスプローラー上の適当なところを右クリックし、`Gitクローン(複製)`を選択します。
<img width="512" alt="" src="https://qiita-image-store.s3.amazonaws.com/0/97774/16ae4a76-99d4-c765-22bb-0c27067e1f1a.png"/>

`URL`にSSH接続文字列を貼り付け、Putty認証キーのロード"にチェックをいれて**秘密鍵ファイル(*.ppk)**を指定し、`OK`でクローンを開始します。
<img width="512" alt="" src="https://qiita-image-store.s3.amazonaws.com/0/97774/48faef2f-3949-d848-d1ab-f1d7cb87635d.png"/>

クローンに成功するとリポジトリ用フォルダが作成され、その中にチェックアウトされます。
<img width="512" alt="" src="https://qiita-image-store.s3.amazonaws.com/0/97774/7577baf1-edc7-fe3c-b8b5-16c3165eea13.png"/>