Cloud9のプロジェクトをCodeCommitで管理

##転載元
当記事は以下ブログからの転載です。
[TECH BACK](https://techback.info/cloud9-codecommit/)

## はじめに
Cloud9で開発している既存プロジェクトをCodeCommitでバージョン管理。Githubでもいいんですが、今回はCodeCommitを使ってみます。

## この記事で出来ること

> Cloud9で開発しているプロジェクトをCodeCommitにリポジトリ登録します。

ま、これだけです。 なので、Cloud9で開発してるプロジェクトが有ることが前提で、話を進めます。 
## バックアップ取得

万一に備え、プロジェクトのバックアップを取っておきましょう。 Cloud9を開き、**File** → **Download Project**プロジェクト名のZipファイルがダウンロードされます。 [![](https://techback.info/wp-content/uploads/2021/02/img_6036b3bae750f.png)](https://techback.info/wp-content/uploads/2021/02/img_6036b3bae750f.png)

## 認証情報の生成

CodeCommitに接続する際に使用する、ユーザ名・パスワードを生成します。 IAMにアクセスし、**アクセス管理** → **ユーザー** をクリック **AWS CodeCommitのHTTPS Git 認証情報** にある **認証情報を生成** をクリック [![](https://techback.info/wp-content/uploads/2021/02/img_60350964a6a20.png)](https://techback.info/wp-content/uploads/2021/02/img_60350964a6a20.png)

認証情報の生成に成功すると以下画面が表示されます。 **証明書のダウンロード**をクリックするとユーザー名とパスワードが記録されたCSVがダウンロードできます。 パスワードを確認できるのはこのタイミングだけなので、ウッカリ閉じたりしないよう気を付けましょう。[![](https://techback.info/wp-content/uploads/2021/02/iam-2-300x183.png)](https://techback.info/wp-content/uploads/2021/02/iam-2.png)
## CodeCommitにリポジトリ設置

### Cloud9に認証情報を登録

Cloud9 を開いて、ターミナルを開きます。 タブの + を押して**New Terminal**[![](https://techback.info/wp-content/uploads/2021/02/img_6032c3309ada7.png)](https://techback.info/wp-content/uploads/2021/02/img_6032c3309ada7.png)

手始めに、ユーザ名とメールアドレスを登録します。以下コマンドを実行
 ユーザー名：認証情報で得たユーザー名
 メールアドレス：なんでも大丈夫です 


```
<span class="p">$ git config --global user.name <span style="color:">ユーザー名</span>
$ git config --global user.email <span style="color:">メールアドレス</span></span>
```



### ローカルリポジトリの作成

プロジェクトディレクトリに移動して、initコマンドを実行。空のローカルリポジトリを作成します。 プロジェクトディレクトリの直下に.gitディレクトリが作成されます。 

```
<span class="p">$ git init
Initialized empty Git repository in /home/ec2-user/environment/<span style="color:">プロジェクトディレクトリ</span>/.git/   #直下に.gitディレクトリを作成</span>
```



コミット対象を登録して、 

```
<span class="p">#コミット対象をindexに追加
$ git add /home/ec2-user/environment/<span style="color:">プロジェクトディレクトリ</span>/
</span>
```



コミットして、ファイルを反映させます。

```
<span class="p">#コミット
$ git commit -m 'first commit' #コミット時のコメントを記入
</span>
```



これでローカルリポジトリにプロジェクト内容を登録できました。 
### リモートリポジトリの作成

次はリモートリポジトリを作成していきます。 CodeCommitを開き、**リポジトリ** → **リポジトリを作成**[![](https://techback.info/wp-content/uploads/2021/02/img_602ad982a5238-1024x293.png)](https://techback.info/wp-content/uploads/2021/02/img_602ad982a5238.png)

**リポジトリ名**を入力して**作成**をクリック。 リポジトリ名は分かりやすいものを入力してOK。プロジェクト名と異なっていても問題ありません。 他の項目については、デフォルトのままで。 [![](https://techback.info/wp-content/uploads/2021/02/img_6036b2dd153ab-300x213.png)](https://techback.info/wp-content/uploads/2021/02/img_6036b2dd153ab.png)

作成後、右上の **URLのクローン** → **HTTPSのクローン** をクリック。 リモートリポジトリのURLがクリップボードにコピーされます。 [![](https://techback.info/wp-content/uploads/2021/02/codecommit-5-1024x319.png)](https://techback.info/wp-content/uploads/2021/02/codecommit-5.png)

ターミナルでpushします。 URL部分にコピーした内容を貼り付けてEnter 

```
<span class="p">#リモートリポジトリにプッシュ
$ git push --set-upstream <span style="color:">CodeCommitのURLを指定</span></span>
```



ユーザー名とパスワードを聞かれるので、認証情報で取得したユーザー名とパスワードを入力。 

```
<span class="p">#ユーザーIDとパスワードを入力
Username for 'URL':
Password for 'URL':
</span>
```



Pushがはじまります。 
### pushでエラーになった場合の対処

pushでエラーになってしまう場合、権限がない可能性があります。（403エラー等） その場合はrootユーザーで試してみましょう。以下コマンドでrootユーザーに切り替えます。 

```
<span class="p">#rootユーザーに切り替え
$ sudo su -
</span>
```



切替後、再度pushしてみましょう。