【AWS】CodeCommitにEC2とwindows端末の両方からgit pushしてみた

### はじめに
最近、gitを使い始めたのですが作業環境によってgit pushのやり方が異なったのでまとめていきます。
今回は以下の2通りを紹介します。
（1）EC2からCodeCommitにgit clone → git pushを実施する
（2）windows端末からCodeCommitにgit clone → git pushを実施する

### 1-1.認証情報の作成
（1）サービス「IAM」→ アクセス管理の中ある「ユーザー」を選択します。
（2）CodeCommitへの認証情報を作成したいユーザを選択します。
　　※作成されていない場合は作成してください。
（3）「認証情報」タブの「AWS CodeCommit の HTTPS Git 認証情報」欄にある、
　　「認証情報を生成」を選択します。
![認証画面.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/554812/daf21d17-6f9c-2f51-2722-ae0184e3215e.png)
（4）認証情報が生成されるので、「証明書のダウンロード」を選択すると認証情報が書かれた
　　csvファイルがダウンロードされます。

### 1-2.CodeCommit リポジトリを作成
（1）サービス「CodeCommit」→「リポジトリを作成」を選択します。
（2）「リポジトリ名」を入力し（今回はgit_test）、「作成」を選択します。
（3）右上の「URLのクローン」タブ → 「HTTPSのクローン」を選択し、クローン用のURLをコピーして
　　テキストなどにメモしておきましょう。URLは「https://**/git_test(リポジトリ名)」になるはずです。
![tab.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/554812/a19cd48a-ec3d-544c-ad2c-4e681aad563b.png)

### 2-1.EC2でgit cloneする
（1）gitをインストールし、ディレクトリを作成します。
（2）git用のディレクトリでgit cloneをします。

```text
sudo yum install git
mkdir git
cd git
git clone https://**/git_test(リポジトリ名)
```
（3）インストールしたcsvファイルに書いてある認証情報（UsernameとPassword）を入力すると以下のように
　　cloneされていることが確認できます。
　※Passwordはコピペしても見えません

```text
[ec2-user@ip-<ip-addr> git]$ ll
total 0
drwxrwxr-x 5 ec2-user ec2-user 187 Nov 30 11:52 git_test
```

### 2-2.EC2でgit pushする
cloneしたディレクトリから適当なファイル（ec2_test.txt）を作成してgit pushしてみましょう。
git pushの際は認証情報を入力してください。

```text
cd git_test  # cloneしたディレクトリに移動
echo "test" > ec2_test.txt  # 適当なファイルを作成
git add .
git commit -m "ec2_commit"
git push origin master
```

CodeCommitで確認すると想定通りファイルが作成されていることが確認できます。
![git_result1.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/554812/3d883102-3f06-9d12-7da6-0b1ad38ff29b.png)

### 3-1.windows端末でgit cloneする
（1）windows端末にGit for WindowsとTortoiseGitをインストールします。
　インストールでは以下の記事を参考にさせて頂きました。
[TortoiseGitの導入とGitLabへの接続方法](https://qiita.com/SkyLaptor/items/6347f38c8c010f4d5bd2)
（2）適当な場所にgit用のディレクトリを作成します。
（3）作成したディレクトリをエクスプローラで開き、右クリック→「Git クローン（複製）」を選択します。
![git_clone.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/554812/942b0e8b-e1d7-be5d-c6f1-c00b0c0aac2e.png)
（4）以下のような画面が出てくるので、URLの欄にクローン用のURLを入力して「OK」を選択します。
![git_clone_2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/554812/7e1e23eb-b5cd-1fcc-fb33-d175e48b5841.png)
（5）認証情報の入力を求められるので入力します。
（6）成功すると以下のようにディレクトリが作成されます。
![result.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/554812/ef7bea21-36e3-fba2-5f77-d797e9664714.png)

### 3-2.windows端末でgit pushする
cloneしたディレクトリから適当なファイル（windows_test.txt）を作成してgit pushしてみましょう。
（1）適当なファイル（windows_test.txt）を作成します。
　　※この作業はEC2で作業した後に行っているので、ディレクトリにはEC2で作成したファイル（ec2_test.txt）もあります。
![result_2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/554812/5882c15f-f9ab-0381-e819-335c6847b523.png)
（2）エクスプローラ上で右クリック→「Git コミット(C)…」を選択します。
（3）以下の画面でメッセージを入れる & 作成したファイルにチェックをつけて、
　　右下の「コミット」を選択します。
![tor_git.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/554812/db710c1b-abef-b059-99ef-e0c4811a3a05.png)
（4）エクスプローラ上で右クリック→「TortoiseGit」→「プッシュ」を選択します。
（5）確認画面でそのまま「OK」を選択します。
（6）CodeCommitで確認すると想定通りファイルが作成されていることが確認できます。
![git_result2.PNG](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/554812/33af407e-a36e-5a01-935d-c061cd7ea526.png)

### まとめ
今回は2通りの方法を紹介しましたが、ファイルの編集や他のアプリケーションとの連携の
しやすさを考えるとEC2にgit cloneする方が良いのではないかと考えています。