WSL2 Ubuntu環境にSourceTreeを導入してAWS CodeCommitを使ってみた

## **はじめに**

- ローカル環境(WSL)で管理しているソースをSourceTreeで管理する手順を整理しました
- リモートリポジトリはAWS CodeCommitになります

## **動作環境・前提条件**

- OS
  - Windows 11 23H2

- WSL
  - VERSION 2
  - Ubuntu 24.04.1 LTS

- その他
  - AWSアカウントが発行済であること
  - VSCodeがインストール済であること
  - AWS CodeCommitの認証情報に使用するIAMユーザに適切な権限が割り当てられていること

## **環境構築手順**

### 1. SourceTree導入

#### 1-1. SourceTree for windowsダウンロード

- 下記のサイトからダウンロード
- <https://www.sourcetreeapp.com/>

#### 2-1. セットアップ

- スキップ
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3904291/61565694-cbd2-1f5a-5e84-7fe0bd2d0722.png)

- Mercurial未選択
![image２.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3904291/b22606a9-eebc-2727-f66d-5273b55f26cb.png)
![image３.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3904291/58199edc-571c-a7a3-622a-26c6bfc6ca09.png)

- Author、メールアドレスは任意
![image４.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3904291/700b2d21-32f9-be05-3e63-9aaa8fa6d103.png)

- SSHキーを読み込みますか？→いいえ
![image５.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3904291/3d31def1-df30-41f8-3af1-9721edf37bbe.png)

### 2. AWS CodeCommitリポジトリ作成

#### 2-1. CodeCommitリポジトリを作成

- リポジトリ名、説明は任意
![image６.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3904291/026ef182-d773-e897-7dbe-1f7934092a1e.png)
![image.７png.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3904291/52722fa9-8c16-bc01-63c1-9418de034a5f.png)

#### 2-2. URLクローン(HTTPS)を控える

- URLのクローン＞HTTPSのクローンを押下

### 3. AWS CodeCommit の HTTPS Git 認証情報

#### 3-1. CodeCommit認証に使用するIAMユーザのGit認証情報を生成

- IAM>git認証で使用するIAMユーザ>セキュリティ認証情報>AWS CodeCommit の HTTPS Git 認証情報
![image８.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3904291/c85df67c-540f-04ac-4ec6-55c774e0911e.png)
![image.９png.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3904291/558b6a79-1f8d-21ae-8545-055acb80e473.png)

#### 3-2. 認証クレデンシャルを控える

- 認証情報をダウンロード

### 4. SourceTreeを使ってソースをクローンする

#### 4-1. SourceTreeにGit認証情報を入力

- New tab>Clone>元パス/URL
  - 2-2.で控えたURLを記載(入力後はカーソルを下の行にずらす)
  ![image11.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3904291/a2c13e3b-c1c7-5853-4488-5fc02ce79f2c.png)

  - CredentialHelperSelector(ポップアップで表示)
    - managerを選択
        - manager
            - Git Credential Manager for Windows
        - no helper
            - 毎回パスワード入力
        - store
            - 平文保存
        - wincred
  - git Credential Manager(ポップアップで表示)
    - 3.2で控えた認証情報を記載
      - 余談ですが、認証に使用するIAMユーザに対してMFA必須のポリシー等を割り当てたりしていると、認証に失敗します(考えてみれば当たり前ですが…)
      ![image13.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3904291/d398c0d9-b522-7be5-0806-d365fda0b76c.png)

    - リポジトリタイプが「これはGitリポジトリです」と表示されていればOK
  - 保存先のパス
    - wslで管理しているォルダ群はwindowsエクスプローラーからでも確認可能
      - エクスプローラで **\\wsl$** と入力
        - 保存先のパスを指定
  - クローンを押下
  - 以下のエラーが表示されます
    ![image14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3904291/81ab1c7b-3709-9945-ef22-97d129c658cc.png)

#### 4-2. WSL使用時に発生するエラーの解消

- SourceTreeのターミナルからgitを開く
- 下記のコマンドを入力（全ディレクトリ許可の場合）

  ```powershell

   git config --global --add safe.directory '*'

  ```

- 変更が反映されたか確認
  - windeowsエクスプローラー>C:\Users\<user>\.gitconfigの内容が下記であること

    ```powershell

    [safe]
    directory = *

    ```

    - 以上で設定は完了です！
    - SourceTreeのクローンをクリックするとソースがクローンできます

## **参考資料**

<https://zenn.dev/na9/articles/07077a4ef54187#sourcetree%E3%82%92wsl%E3%81%A7%E5%88%A9%E7%94%A8%E3%81%99%E3%82%8B%E9%9A%9B%E3%81%AE%E3%82%A8%E3%83%A9%E3%83%BC%E3%81%AE%E8%A7%A3%E6%B6%88>

<https://tech.willserver.asia/2021/11/29/%E3%80%90aws%E3%80%91aws-codecommit%E3%82%92sourcetree%E3%81%A7%E4%BD%BF%E3%81%88%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%99%E3%82%8Bwindows/#toc5>

## **おわりに・まとめ**

- 前回に引き続き環境構築系の記事なりました
- 元々手元に手順をメモしているので、記事に起こすまでがスムーズで書きやすかったです