WindowsでのGit利用方法

AWSのCodeCommitでGitを利用してみたいと感じ、試してみました。
誰かの参考になれば幸いです。

# はじめに
今回は、AWS CodeCommitの動作を確認する為にGitを導入しました。

■ AWS CodeCommitを利用する場合にやること
AWS CodeCommitでリポジトリを作成してください。
AWSのIAMでユーザーを作成し、`AWS CodeCommit の HTTPS Git 認証情報`を取得しておいてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/c992d5e5-86cd-89bb-d32f-aa5c5abc5054.png)

■実行環境
今回は、以下の環境で実行しました。
- Windows7 64bit
- Git 2.24.1.2
- TortoiseGit 2.9.0

# Gitをパソコンにインストールする

## Gitのインストール

### ■Information

[こちらのページ](https://git-scm.com/downloads)のダウンロードリンクをクリックし、最新のGitをダウンロードします。
ダウンロード完了後、実行ファイルを起動すると、インストーラーが起動します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/f669382d-19f1-4534-3465-780e7781963d.png)

### ■Select Destination Location

インストールしたい場所を指定し、Nextをクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/8bd29385-3ea8-11e8-c741-38cc552eaa8f.png)

### ■Select Components

コンポーネントの選択を行い、`Next`をクリックします。
今回は、デフォルトのまま`Next`をクリックで問題ありません。

| 英語 | 訳 | 
|:-------------|:-----------|
|Additional icons - On the Desktop | デスクトップにアイコンの配置 |
|Windows Explore - Git Bash Here | エクスプローラーの右クリックメニューのリストに「Git Bash Here」を追加|
|Windows Explore - Git GUI Here | エクスプローラーの右クリックメニューのリストに「Git GUI Here」を追加|
|Git LFS (Large File System)|Git LFS（大きなサイズのファイル・システム）の利用|
|Associate .git* configuration files<br> with the default text editor|デフォルトのテキスト・エディターと「.git*」コンフィグレーション・ファイルを関連付ける|
|Assiciate .sh files to be run with Bash|Bashと「.sh」ファイルを関連付ける|


![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/647c96a6-1f73-a939-bca4-e7a75c93fa69.png)

### ■Select Start Menu Folder

スタートメニューのフォルダを選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/74188597-0cc8-0962-3609-a319292c0bb2.png)

### ■Choosing the default editor used by Git

デフォルトのエディターを選択します。
今回は、「Visual Studio Code」を利用するように選択しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/c9e7a247-6ad0-86b8-6bb8-190365fa27cc.png)

### ■Adjusting your PATH environment

環境変数の設定を行います

| 英語 | 訳 | 
|:-------------|:-----------|
|Use Git from Git Bash only | Git Bashのみ利用 |
|Git from the command line and also from 3rd-party software | コマンドライン及びサードパーティソフトウェアのGitを使用 |
|Use Git and optional Unix tools from the Command Prompt | コマンドラインから、Git及びオプションのUnixツールを使用する |

今回は「Git from the command line and also from 3rd-party software」を選択する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/39be6a86-a32c-b99f-544a-6876fa6ff4f6.png)

### ■Choosing HTTPS transport backend

| 英語 | 訳 | 
|:-------------|:-----------|
|Use the OpenSSL library | サーバー認証はca-bundle.crtファイルを使って行う |
|Use the native Widows Secure Channel library | サーバー認証はWindows Certificate Storeを使って行う |

今回は「Use the OpenSSL library」を選択する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/efede597-b5d5-4332-009d-7544a5717eaa.png)

### ■Configuring the line ending conversions

| 英語 | 訳 | 
|:-------------|:-----------|
|Checkout Windows-style, commit Unix-style line endings | Gitはテキス・ファイルのチェックアウトを行う時LFをCRLFに変換する。テキスト・ファイルをコミットする時CRLFをLFに変換する。クロス・プラットフォーム・プロジェクトのためにWindowsに対して推薦される設定である。（「autocrlf」が「true」に設定される） |
|Checkout as-is, commit Unix-style line endings | Gitはテキス・ファイルのチェックアウトを行う時どんな変換も行わない。テキスト・ファイルをコミットする時CRLFをLFに変換する。クロス・プラットフォーム・プロジェクトのためにUnixに対して推薦される設定である。（「autocrlf」が「input」に設定される） |
|Checkout as-is, commit as-is | Gitはテキス・ファイルのチェックアウトやコミットを行う時どんな変換も行わない。このオプションを選択することはクロス・プラットフォーム・プロジェクトのために推薦することはできない。（「autocrlf」が「false」に設定される） |

今回は、Windowsの推奨設定にする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/15c53e91-bd0a-19ad-7d4d-37fdb193fc53.png)

### ■Configuring the terminal emulator to use with Git Bash

| 英語 | 訳 | 
|:-------------|:-----------|
|Use MinTTY(the default terminal of MSYS2) | Git BashはMinTTYをターミナル・エミュレータとして使う。そして、それはサイズが変更可能なウインドウで、非長方形の選択、Unicodeをサポートしている。Windowsコンソール・プログラムは（対話型のPythonのような）MinTTYの中で動作させるために「winpty」を通して起動しなければならない。 |
|Use Widow’s default console windows | GitはWindowsのデフォルト・コンソール。ウインドウ（exe）を使用する。そして、それは対話型のPythonやnode.jsのようなWin32コンソール・プログラムと共に正常に動作する。しかし、デフォルトのスクロール・バックは非常に限られたものである。非ASII文字を正しく表示するためにはUnicodeフォントが使えるように設定する必要がある。また、Windows10以前のウインドウは自由にサイズを変更できないし、長方形のテキスト選択しか許されていない。 |

ここではデフォルトの「Use MinTTY」を利用する
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/6e5cc52f-7564-1fc0-7522-3dd2dc74afc9.png)

### ■Configuring extra options

| 英語 | 訳 | 
|:-------------|:-----------|
|Enable file system caching | ファイル・システム・データはある操作を行うためにメモリに野中にバルクやキャッシュされる。（fscacheがtrueに設定される）これは大幅なパフォーマンス向上を提供する。 |
|Enable Git Credential Manager | WindowsのためのGit Credential Managerは、Windowsに対して安全な認証証明の付きのストレージを提供する。それは、特にVisual Studio Team ServiceやGitHubのためのさまざまな認証サポートを行う。 |
|Enable symbolic links | シンボリック・リンクを有効にする。（SeCreateSymbolicLink 許可が要求される）現状のリポジトリーは、この設定に影響されないことに注意してください。 |

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/90285fc2-8152-ca34-b73a-7c707edb9675.png)

### ■Configuring experimental options

| 英語 | 訳 | 
|:-------------|:-----------|
| Enable experimental, built-in add -i/-p | 実験的なBuilt-in機能、インタラクティブ追加を利用して高速化が実現できます。 |


下記のオプションは無効にする。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/c7e6d975-84fa-40ab-2608-f1ed725e0185.png)

インストールが開始されます。

### ■インストール完了

下記の画面が表示されればインストール完了です。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/2713e5a4-4fcb-b65f-bea5-d07304dc02be.png)

# Gitの初期設定
「Git Bash」を起動し、下記のコマンドで自分の情報を設定します。

```sh:個人の情報を設定
git config --global user.email "メールアドレス"
git config --global user.name "名前"
```
コミットなどの際、登録した情報が利用されます。

# リポジトリのURLへのアクセス
Gitが正しくインストールされているかを確認します。

## コマンドラインを利用する場合

アクセスしたいURLと認証情報を準備します。
（情報が分からない場合は管理者に問い合わせてください。）

- URL ： GitリポジトリのURL
- 認証情報 ： CodeCommitの認証情報（IAMの作成時に取得した認証情報）

Git Bashを起動します。

Git用のフォルダを作成したいフォルダに移動します。
コマンドラインで下記のコマンドを実行します。

```sh:Git用コマンド
mkdir ｛Git用のフォルダ名｝
git clone ｛GITのリポジトリURL｝ ｛Git用のフォルダ名｝
```

### Proxyの設定
社内環境等でアクセスが拒否された場合は、下記のコマンドで設定を変更してください。

```sh:GitProxy設定
git config --global http.proxy http://proxy.xxx.co.jp:8080
git config --global https.proxy http://proxy.xxx.co.jp:8080
```
```sh:GitProxy設定（ユーザー名・パスワード有り時）
git config --global http.proxy http://user:password@proxy.xxx.co.jp:8080
git config --global https.proxy http://user:password@proxy.xxx.co.jp:8080
```

### VPN接続＋Proxy時の設定
`http.proxy`の後ろに「http://」が付いていると上手く接続できないので、下記のようなコマンドを利用する。

```sh:VPN+Proxy時の設定
git config --global http.proxy path.to.proxy:port
git config --global https.proxy path.to.proxy:port
```
```sh:VPN+Proxy時の設定（ユーザー名・パスワード有り時）
git config --global http.proxy user:password@path.to.proxy:port
git config --global https.proxy user:password@path.to.proxy:port
```


### ユーザー認証
下記のような認証情報確認画面が表示された場合は、管理者から伝えられた認証情報を入力してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/5fd0a334-7905-c424-1f3a-cb5e4524debb.png)

## GUIを利用する場合

Git GUIをオープンし、`Clone Existing Repository`を選択します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/99fee0b7-46d5-1fe6-105b-20fcfa23e40c.png)

「Source Location」：GitのURL
「Target Directory」：Cloneしたいパス
を入力して`clone`を実行します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/fc0428cc-8edc-ae64-3dd9-8e7a227c17f9.png)

### Proxyの設定
社内環境等でアクセスが拒否された場合は、「Git Bash」を起動し、下記のコマンドで設定を変更してください。

```sh:GitProxy設定
git config --global http.proxy http://proxy.xxx.co.jp:8080
git config --global https.proxy http://proxy.xxx.co.jp:8080
```
```sh:GitProxy設定（ユーザー名・パスワード有り時）
git config --global http.proxy http://user:password@proxy.xxx.co.jp:8080
git config --global https.proxy http://user:password@proxy.xxx.co.jp:8080
```

### VPN接続＋Proxy時の設定
`http.proxy`の後ろに「http://」が付いていると上手く接続できないので、下記のようなコマンドを利用する。

```sh:VPN+Proxy時の設定
git config --global http.proxy path.to.proxy:port
git config --global https.proxy path.to.proxy:port
```
```sh:VPN+Proxy時の設定（ユーザー名・パスワード有り時）
git config --global http.proxy user:password@path.to.proxy:port
git config --global https.proxy user:password@path.to.proxy:port
```

# Tortoise Gitの導入
個人的には、Tortoise Gitの方が使いやすいので、オススメです。

## Tortoise Gitインストーラーのダウンロード
[こちら](https://tortoisegit.org/)から本体と言語パッケージをダウンロードする。

Windows 64bitの場合は下記の部分からダウンロードしてください。
■ 本体
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/0c5e6126-b120-18d4-e564-f7643273bab3.png)

■言語パック
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/890ba9e0-26a6-5587-5e6e-285a5a0d8da0.png)

## Tortoise Git本体のインストール
インストーラーを起動したら、はじめのページが表示されますので、`Next`をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/7917b7b2-5c87-0515-d3f2-0ead65f8002b.png)

規約を確認し、`Next`をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/5d84958f-ff2e-f5aa-f3df-2bc4a02fd6fe.png)

今回はデフォルトのままで`Next`をクリックします。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/83cf2cb0-4016-5cae-379e-8bb44bd8259c.png)

英語の辞書は不要かと思いますので、今回は未選択にしました。
インストール先もデフォルトのままにしました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/5add43e4-f4cf-9f8c-fb6d-06424f5bd9ce.png)

インストールをクリックして、開始します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/8ba0bb10-3e90-fbb8-b842-c15f8cdeaa95.png)

日本語化を行う為に、自動起動のチェックを外します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/24e7fc11-3059-5225-602d-6c3152e92aff.png)


## Tortoise Git言語パックのインストール

先ほどダウンロードした日本語化パックをインストールしていきます。

実行すると、はじめの画面が表示されますの、`次へ`をクリックします。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/83d6f231-5349-b81c-7709-33162baa80da.png)

以下の画面が表示されれば、日本語化は完了です。
日本語を利用するにチェックを入れて`完了`をおしてください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/bae7030d-d215-c641-6272-320abdb75b12.png)

## Tortoise Gitネットワークの設定
社内ネットワーク等でProxyサーバーを利用している場合

ファイルエクスプローラーで右クリックし、下記の図のように`設定`を選択してください。
（メニューが日本語になっていない場合は、`Settings`をクリックしてください。）
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/834169d3-1780-3fde-4a44-bee60bf2ce58.png)

メニューが英語の場合は、全般の設定で「Language」という項目がありますので、日本語を選択してください。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/8559680b-2f76-4328-4762-2c16729fc50a.png)

ネットワークの設定を行います。
サーバーアドレスやユーザー名、パスワードを入力してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/1137dbba-1598-f5ef-9297-38ac153f5e50.png)

## Tortoise Git 動作の確認

新規確認用のフォルダを任意の場所に作成してください。
その後、右クリックでメニューを開き、`Gitクローン（複製）`を選択してください。

URLにGitのURLを入力して`OK`を押してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/567895c8-6249-29b0-44c2-a18f777a6a06.png)

下の図のように成功と表示されれば正常に動作しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/7f14ec2d-fd31-5532-0333-46f89c7f7717.png)

下記のような認証情報確認画面が表示された場合は、管理者から伝えられた認証情報を入力してください。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/401878/5fd0a334-7905-c424-1f3a-cb5e4524debb.png)


# まとめ
お疲れ様でした。
ここまで設定できればもうGitを利用して開発する事ができます。