

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 將本機或未版本的內容遷移至 AWS CodeCommit
<a name="how-to-migrate-repository-local"></a>

本主題中的程序說明如何將電腦上的現有專案或本機內容遷移至 CodeCommit 儲存庫。隨著此程序，您會完成：
+ 完成 CodeCommit 所需的初始設定。
+ 建立 CodeCommit 儲存庫。
+ 在 Git 版本控制下放置本機資料夾，並將該資料夾的內容推送至 CodeCommit 儲存庫。
+ 檢視 CodeCommit 儲存庫中的檔案。
+ 與您的團隊共用 CodeCommit 儲存庫。

![\[將本機專案遷移至 CodeCommit\]](http://docs.aws.amazon.com/zh_tw/codecommit/latest/userguide/images/codecommit-migrate-local.png)


**Topics**
+ [步驟 0：存取 CodeCommit 所需的設定](#how-to-migrate-local-setup)
+ [步驟 1：建立 CodeCommit 儲存庫](#how-to-migrate-local-create)
+ [步驟 2：將本機內容遷移至 CodeCommit 儲存庫](#how-to-migrate-local-version)
+ [步驟 3：在 CodeCommit 中檢視檔案](#how-to-migrate-local-view)
+ [步驟 4：共用 CodeCommit 儲存庫](#how-to-migrate-local-share)

## 步驟 0：存取 CodeCommit 所需的設定
<a name="how-to-migrate-local-setup"></a>

您必須先為 CodeCommit 建立和設定 IAM 使用者，並設定本機電腦以進行存取，才能將本機內容遷移至 CodeCommit。您也應該安裝 AWS CLI 來管理 CodeCommit。雖然您可以在沒有 CodeCommit 任務的情況下執行大部分任務，但 AWS CLI 可在使用 Git 時提供靈活性。

如果您已設定 CodeCommit，您可以直接跳到 [步驟 1：建立 CodeCommit 儲存庫](#how-to-migrate-local-create)。

**建立和設定 IAM 使用者以存取 CodeCommit**

1. 前往 https：//[http://aws.amazon.com](https://aws.amazon.com/) 並選擇**註冊**來建立 Amazon Web Services 帳戶。

1. 在您的 Amazon Web Services 帳戶中建立 IAM 使用者，或使用現有的使用者。請確定您擁有與該 IAM 使用者相關聯的存取金鑰 ID 和私密存取金鑰。如需詳細資訊，請參閱[在您的 Amazon Web Services 帳戶中建立 IAM 使用者](https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_SettingUpUser.html)。
**注意**  
CodeCommit 需要 AWS Key Management Service。如果您使用的是現有的 IAM 使用者，請確定沒有政策連接到明確拒絕 CodeCommit 所需的 AWS KMS 動作的使用者。如需詳細資訊，請參閱[AWS KMS 和 加密](encryption.md)。

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 在 IAM 主控台的導覽窗格中，選擇**使用者**，然後選擇您要為 CodeCommit 存取設定的 IAM 使用者。

1. 在 **Permissions (許可)** 標籤上，選擇 **Add Permissions (新增許可)**。

1. 在 **Grant permissions (授予許可)** 中，選擇 **Attach existing policies directly (直接連接現有政策)**。

1. 從政策清單中，選取 **AWSCodeCommitPowerUser** 或其他 CodeCommit 存取的受管政策。如需詳細資訊，請參閱[AWS CodeCommit 的 受管政策](security-iam-awsmanpol.md)。

   選取要連接的政策之後，請選擇**下一步：檢閱**以檢閱要連接到 IAM 使用者的政策清單。如果清單正確，請選擇 **Add permissions (新增許可)**。

    如需 CodeCommit 受管政策以及與其他群組和使用者共用儲存庫存取權的詳細資訊，請參閱 [共用儲存庫](how-to-share-repository.md)和 [的身分驗證和存取控制 AWS CodeCommit](auth-and-access-control.md)。

**安裝和設定 AWS CLI**

1. 在本機電腦上，下載並安裝 AWS CLI。這是從命令列與 CodeCommit 互動的先決條件。我們建議您安裝 AWS CLI 第 2 版。這是 的最新主要版本， AWS CLI 並支援所有最新功能。這是 唯一 AWS CLI 支援搭配 使用根帳戶、聯合存取或臨時憑證的 版本**git-remote-codecommit**。

   如需詳細資訊，請參閱[使用 AWS 命令列界面進行設定](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-set-up.html)。
**注意**  
CodeCommit 僅適用於 1.7.38 版和更新 AWS CLI 版本。最佳實務是安裝 或 AWS CLI 將 升級至可用的最新版本。若要判斷 AWS CLI 您已安裝的 版本，請執行 **aws --version**命令。  
若要 AWS CLI 將舊版 升級至最新版本，請參閱[安裝 AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/installing.html)。

1. 執行此命令，以確認 AWS CLI 已安裝 的 CodeCommit 命令。

   ```
   aws codecommit help
   ```

   此命令會傳回 CodeCommit 命令的清單。

1. 使用 **configure**命令 AWS CLI 以設定檔設定 ，如下所示：

   ```
   aws configure
   ```

   出現提示時，請指定要與 CodeCommit 搭配使用之 IAM 使用者的 AWS 存取金鑰和 AWS 私密存取金鑰。此外，請務必指定儲存 AWS 區域 庫所在的 ，例如 `us-east-2`。系統提示您輸入預設輸出格式時，請指定 `json`。例如，如果您為 IAM 使用者設定設定檔：

   ```
   AWS Access Key ID [None]: Type your IAM user AWS access key ID here, and then press Enter
   AWS Secret Access Key [None]: Type your IAM user AWS secret access key here, and then press Enter
   Default region name [None]: Type a supported region for CodeCommit here, and then press Enter
   Default output format [None]: Type json here, and then press Enter
   ```

   如需建立和設定設定檔以搭配 使用的詳細資訊 AWS CLI，請參閱下列內容：
   + [命名設定檔](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)
   + [在 中使用 IAM 角色 AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-role.html)
   + [設定命令](https://docs.aws.amazon.com/cli/latest/reference/set.html)
   + [使用輪換憑證連線至 AWS CodeCommit 儲存庫](temporary-access.md)

   若要連線到儲存庫或其他資源 AWS 區域，您必須 AWS CLI 使用預設區域名稱重新設定 。CodeCommit 支援的預設區域名稱包括：
   + us-east-2
   + us-east-1
   + eu-west-1
   + us-west-2
   + ap-northeast-1
   + ap-southeast-1
   + ap-southeast-2
   + ap-southeast-3
   + me-central-1
   + eu-central-1
   + ap-northeast-2
   + sa-east-1
   + us-west-1
   + eu-west-2
   + ap-south-1
   + ap-south-1
   + ca-central-1
   + us-gov-west-1
   + us-gov-east-1
   + eu-north-1
   + ap-east-1
   + me-south-1
   + cn-north-1
   + cn-northwest-1
   + eu-south-1
   + ap-northeast-3
   + af-south-1
   + il-central-1

   如需 CodeCommit 和 的詳細資訊 AWS 區域，請參閱 [區域和 Git 連線端點](regions.md)。如需 IAM、存取金鑰和私密金鑰的詳細資訊，請參閱[如何取得登入資料？](https://docs.aws.amazon.com/IAM/latest/UserGuide/IAM_Introduction.html#IAM_SecurityCredentials)以及[管理 IAM 使用者的存取金鑰](https://docs.aws.amazon.com/IAM/latest/UserGuide/ManagingCredentials.html)。如需 AWS CLI 和 設定檔的詳細資訊，請參閱[具名設定檔](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-files.html)。

接著，您必須安裝 Git。
+ **若為 Linux、macOS 或 Unix：**

  若要使用 CodeCommit 儲存庫中的檔案、遞交和其他資訊，您必須在本機電腦上安裝 Git。CodeCommit 支援 Git 1.7.9 版和更新版本。Git 2.28 版支援為初始遞交設定分支名稱。我們建議您使用最新版本的 Git。

  若要安裝 Git，我們建議使用 [Git Downloads](http://git-scm.com/downloads) 等網站。
**注意**  
Git 是一個不斷發展、定期更新的平台。有時，功能變更可能會影響其使用 CodeCommit 的方式。如果您遇到 Git 和 CodeCommit 特定版本的問題，請檢閱 中的資訊[疑難排解](troubleshooting.md)。
+ **用於 Windows：**

  若要使用 CodeCommit 儲存庫中的檔案、遞交和其他資訊，您必須在本機電腦上安裝 Git。CodeCommit 支援 Git 1.7.9 版和更新版本。Git 2.28 版支援為初始遞交設定分支名稱。我們建議您使用最新版本的 Git。

  若要安裝 Git，我們建議使用 [Git for Windows](https://gitforwindows.org/) 等網站。如果您使用此連結來安裝 Git，您可以接受所有安裝預設設定，但下列項目除外：
  + 在**調整 PATH 環境**步驟期間出現提示時，請從命令列選擇使用 Git 的選項。
  + （選用） 如果您想要將 HTTPS 與包含在 中的登入資料協助程式搭配使用， AWS CLI 而不是設定 CodeCommit 的 Git 登入資料，請在**設定額外選項**頁面上，確定已清除**啟用 Git Credential Manager** 選項。只有在 IAM 使用者設定 Git 登入資料時，Git Credential Manager 才會與 CodeCommit 相容。如需詳細資訊，請參閱[對於使用 Git 登入資料的 HTTPS 使用者](setting-up-gc.md)及[適用於 Windows 的 Git：我已安裝適用於 Windows 的 Git，但現在拒絕我存取儲存庫 (403)](troubleshooting-ch.md#troubleshooting-windowshttps)。
**注意**  
Git 是一個不斷發展、定期更新的平台。有時，功能變更可能會影響其使用 CodeCommit 的方式。如果您遇到 Git 和 CodeCommit 特定版本的問題，請檢閱 中的資訊[疑難排解](troubleshooting.md)。

CodeCommit 同時支援 HTTPS 和 SSH 身分驗證。若要完成設定，您必須設定 CodeCommit 的 Git 登入資料 (HTTPS，建議大多數使用者）、存取 CodeCommit 時要使用的 SSH 金鑰對 (SSH) **git-remote-codecommit**（建議使用聯合存取的使用者），或包含在 中的登入資料協助程式 AWS CLI。
+ 關於所有支援作業系統上的 Git 登入資料，請參閱[步驟 3：為與 CodeCommit 的 HTTPS 連線建立 Git 登入資料](setting-up-gc.md#setting-up-gc-iam)。
+ 如需 Linux、macOS 或 Unix 上的 SSH，請參閱 [SSH 和 Linux、macOS 或 Unix：設定 Git 和 CodeCommit 的公有和私有金鑰](setting-up-ssh-unixes.md#setting-up-ssh-unixes-keys-unixes)。
+  關於 Windows 上的 SSH，請參閱 [步驟 3：設定 Git 和 CodeCommit 的公有和私有金鑰](setting-up-ssh-windows.md#setting-up-ssh-windows-keys-windows)。
+ 若為 **git-remote-codecommit**，請參閱[AWS CodeCommit 使用 git-remote-codecommit 對 HTTPS 連線的設定步驟](setting-up-git-remote-codecommit.md)。
+ 如需 Linux、macOS 或 Unix 上的登入資料協助程式，請參閱[設定登入資料協助程式 (Linux、macOS 或 Unix)](setting-up-https-unixes.md#setting-up-https-unixes-ch-config)。
+ 關於 Windows 上的登入資料協助程式，請參閱[設定登入資料協助程式 (Windows)](setting-up-https-windows.md#setting-up-https-windows-ch-config)。

## 步驟 1：建立 CodeCommit 儲存庫
<a name="how-to-migrate-local-create"></a>

在本節中，您可以使用 CodeCommit 主控台來建立用於本教學課程其餘部分的 CodeCommit 儲存庫。若要使用 AWS CLI 建立儲存庫，請參閱 [建立儲存庫 (AWS CLI)](how-to-create-repository.md#how-to-create-repository-cli)。

1. 在 https：//[https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home) 開啟 CodeCommit 主控台。

1. 在區域選擇器中，選擇您要建立儲存庫的 AWS 區域 。如需詳細資訊，請參閱[區域和 Git 連線端點](regions.md)。

1. 請在 **Repositories** (儲存庫) 頁面上，選擇 **Create repository** (建立儲存庫)。

1. 在 **Create repository (建立儲存庫)** 頁面的 **Repository name (儲存庫名稱)** 中，輸入儲存庫的名稱。
**注意**  
儲存庫名稱區分大小寫。名稱在您的 Amazon Web Services 帳戶的 AWS 區域 中必須是唯一的。

1. (選用) 在 **Description (描述)** 中，輸入儲存庫的描述。這可協助您和其他使用者識別儲存庫的用途。
**注意**  
描述欄位會在主控台中顯示 Markdown，並接受所有 HTML 字元和有效的 Unicode 字元。如果您是使用 `GetRepository`或 `BatchGetRepositories` APIs 的應用程式開發人員，並且打算在 Web 瀏覽器中顯示儲存庫描述欄位，請參閱 [CodeCommit API 參考](https://docs.aws.amazon.com/codecommit/latest/APIReference/)。

1. （選用） 選擇**新增標籤**，將一或多個儲存庫標籤 （可協助您組織和管理 AWS 資源的自訂屬性標籤） 新增至儲存庫。如需詳細資訊，請參閱[在 中標記儲存庫 AWS CodeCommit](how-to-tag-repository.md)。

1. （選用） 展開**其他組態**，以指定是否使用預設值 AWS 受管金鑰 或您自己的客戶受管金鑰來加密和解密此儲存庫中的資料。如果您選擇使用自己的客戶受管金鑰，則必須確保它在您建立儲存庫 AWS 區域 的 中可用，且金鑰處於作用中狀態。如需詳細資訊，請參閱[AWS Key Management Service 和 AWS CodeCommit 儲存庫的加密](encryption.md)。

1. （選用） 如果此儲存庫包含 **Java 或 Python 程式碼，且您希望 CodeGuru Reviewer 對其進行分析，請選取啟用適用於 Java 和 Python 的 Amazon** CodeGuru Reviewer。 CodeGuru CodeGuru Reviewer 使用多個機器學習模型來尋找程式碼瑕疵，並在提取請求中建議改進和修正。如需詳細資訊，請參閱 [https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/Welcome.html](https://docs.aws.amazon.com/codeguru/latest/reviewer-ug/Welcome.html)。

1. 選擇**建立**。

建立儲存庫之後，該儲存庫會出現在 **Repositories (儲存庫)** 清單中。在 URL 欄中，選擇複製圖示，然後選擇用於連線至 CodeCommit 的通訊協定 (HTTPS 或 SSH)。複製 URL。

例如，如果您將儲存庫命名為 *MyFirstRepo* 且使用 HTTPS，則 URL 如下所示：

```
https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyFirstRepo
```

稍後在[步驟 2：將本機內容遷移至 CodeCommit 儲存庫](#how-to-migrate-local-version)中，您需要用到此 URL。

## 步驟 2：將本機內容遷移至 CodeCommit 儲存庫
<a name="how-to-migrate-local-version"></a>

現在您已擁有 CodeCommit 儲存庫，您可以在本機電腦上選擇要轉換為本機 Git 儲存庫的目錄。**git init** 命令可用於將現有的、無版本控制的內容轉換為 Git 儲存庫，或者，如果您尚無檔案或內容，則用於初始化新的空白儲存庫。

1. 從本機電腦上的終端機或命令列，將目錄變更到您要做為儲存庫來源的目錄。

1. 執行下列命令，將 Git 設定為使用名為 的預設分支**main**：

   ```
   git config --local init.defaultBranch main
   ```

   您也可以執行此命令，**main**將所有新建立的儲存庫的預設分支名稱設定為 ：

   ```
   git config --global init.defaultBranch main
   ```

1. 執行 **git init** 命令，在此目錄中初始化 Git 版本控制。這會在目錄的根建立 .git 子目錄，以啟用版本控制追蹤。此 .git 資料夾也包含儲存庫的所有必要中繼資料。

   ```
   git init
   ```

1. 執行下列命令，檢查初始化目錄的狀態：

   ```
   git status
   ```

   新增您要加入版本控制中的檔案。在此教學中，您會執行 `git add` 命令搭配 `.` 指標，以新增這個目錄中的所有檔案。關於其他選項，請參閱 Git 文件。

   ```
   git add .
   ```

1. 以遞交訊息為新增的檔案建立遞交。

   ```
   git commit -m "Initial commit"
   ```

1. 執行 **git push**命令，指定目的地 CodeCommit 儲存庫的 URL 和名稱，以及 `--all`選項。(這是您在[步驟 1：建立 CodeCommit 儲存庫](#how-to-migrate-local-create)中複製的 URL。)

   例如，如果您將儲存庫命名為 *MyFirstRepo* 且設定為使用 HTTPS，則應該執行下列命令：

   ```
   git push https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyFirstRepo --all
   ```

## 步驟 3：在 CodeCommit 中檢視檔案
<a name="how-to-migrate-local-view"></a>

推送目錄的內容之後，您可以使用 CodeCommit 主控台快速檢視儲存庫中的所有檔案。

1. 在 https：//[https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home) 開啟 CodeCommit 主控台。

1. 在 **Repositories (儲存庫)** 中，從清單中選擇儲存庫名稱 (例如，*MyFirstRepoitory*)。

1. 檢視儲存庫中的檔案，以查看分支、複製 URL、設定等等。

## 步驟 4：共用 CodeCommit 儲存庫
<a name="how-to-migrate-local-share"></a>

當您在 CodeCommit 中建立儲存庫時，會產生兩個端點：一個用於 HTTPS 連線，另一個用於 SSH 連線。兩者都提供網路上的安全連線。您的使用者可以使用任一通訊協定。無論您建議使用者採用哪個通訊協定，這兩個端點都保持在作用中。您必須先建立允許其他使用者存取儲存庫的 IAM 政策，才能與他人共用儲存庫。提供這些存取指示給您的使用者。

**為您的儲存庫建立客戶受管政策**

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 在 **Dashboard (儀表板)** 導覽區域中，選擇 **Policies (政策)**，然後選擇 **Create Policy (建立政策)**。

1. 在**建立政策**頁面上，選擇**匯入受管政策**。

1. 在**匯入受管政策**頁面的**篩選政策**中，輸入 **AWSCodeCommitPowerUser**。選擇政策名稱旁的按鈕，然後選擇**匯入**。

1. 在 **建立政策**頁面上，選擇 **JSON**。將 CodeCommit 動作`Resource`行的「\$1」部分取代為 CodeCommit 儲存庫的 Amazon Resource Name (ARN)，如下所示：

   ```
   "Resource": [
    "arn:aws:codecommit:us-east-2:111111111111:MyDemoRepo"
    ]
   ```
**提示**  
若要尋找 CodeCommit 儲存庫的 ARN，請前往 CodeCommit 主控台，從清單中選擇儲存庫名稱，然後選擇**設定**。如需詳細資訊，請參閱[檢視儲存庫詳細資訊](how-to-view-repository-details.md)。

   如果您希望此政策套用到多個儲存庫，請指定儲存庫的 ARN，將每個儲存庫新增為資源。在每個資源陳述式之間包含逗號，如下所示：

   ```
   "Resource": [
    "arn:aws:codecommit:us-east-2:111111111111:MyDemoRepo",
    "arn:aws:codecommit:us-east-2:111111111111:MyOtherDemoRepo"
    ]
   ```

   完成編輯後，請選擇**檢閱政策**。

1. 在**檢閱政策**頁面**的名稱**中，輸入政策的新名稱 （例如 *AWSCodeCommitPowerUser-MyDemoRepo*)。選擇性地提供此政策的描述。

1. 選擇**建立政策**。

若要管理儲存庫的存取權，請為其使用者建立 IAM 群組、將 IAM 使用者新增至該群組，然後連接您在上一個步驟中建立的客戶受管政策。附加存取所需的任何其他政策，例如 `IAMSelfManageServiceSpecificCredentials` 或 `IAMUserSSHKeys`。

1. 登入 AWS 管理主控台 ，並在 https：//[https://console.aws.amazon.com/iam/](https://console.aws.amazon.com/iam/) 開啟 IAM 主控台。

1. 在 **Dashboard (儀表板)** 導覽區域中，選擇 **Groups (群組)**，然後選擇 **Create New Group (建立新的群組)**。

1. 在**設定群組名稱**頁面的**群組名稱**中，輸入群組的名稱 （例如 *MyDemoRepoGroup*)，然後選擇**下一步**。請考慮將儲存庫名稱包含於群組名稱中。
**注意**  
此名稱在 Amazon Web Services 帳戶中必須是唯一的。

1. 選取您在上一節中建立的客戶受管政策旁的方塊 （例如 **AWSCodeCommitPowerUser-MyDemoRepo**)。

1. 在 **Review (檢閱)** 頁面上，選擇 **Create Group (建立群組)**。IAM 會建立已連接指定政策的此群組。群組會出現在與您的 Amazon Web Services 帳戶相關聯的群組清單中。

1. 從清單中選擇您的群組。

1. 在群組摘要頁面上，選擇 **Users (使用者)** 標籤，然後選擇 **Add Users to Group (新增使用者到群組)**。在顯示與您的 Amazon Web Services 帳戶相關聯之所有使用者的清單中，選取您要允許其存取 CodeCommit 儲存庫之使用者旁邊的方塊，然後選擇**新增使用者**。
**提示**  
您可以使用 [Search (搜尋)] 方塊，依名稱快速尋找使用者。

1. 新增使用者後，請關閉 IAM 主控台。

在您建立用於使用您設定的政策群組和政策存取 CodeCommit 的 IAM 使用者之後，請將連線至儲存庫所需的資訊傳送給該使用者。

1. 在 https：//[https://console.aws.amazon.com/codesuite/codecommit/home](https://console.aws.amazon.com/codesuite/codecommit/home) 開啟 CodeCommit 主控台。

1. 在區域選擇器中，選擇建立儲存庫 AWS 區域 的 。儲存庫專屬於 AWS 區域。如需詳細資訊，請參閱[區域和 Git 連線端點](regions.md)。

1. 在 **Repositories (儲存庫)** 頁面上，選擇您要共用的儲存庫。

1. 在 **Clone URL (複製 URL)** 中，選擇您要讓使用者使用的通訊協定。這樣會複製該連線通訊協定的複製 URL。

1. 向您的使用者傳送複製 URL 以及任何其他指示，例如安裝 AWS CLI、設定設定檔或安裝 Git。請務必包含連線通訊協定的組態資訊 (例如 HTTPS)。