將 Git 儲存庫遷移到 AWS CodeCommit - AWS CodeCommit

AWS CodeCommit 不再提供給新客戶。的現有客戶 AWS CodeCommit 可繼續正常使用此服務。了解更多」

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

將 Git 儲存庫遷移到 AWS CodeCommit

您可以將現有的 Git 儲存庫遷移到 CodeCommit 儲存庫。此主題中的程序將說明如何將於另一個 Git 儲存庫託管的專案遷移到 CodeCommit。隨著此程序,您會完成:

  • 完成所需的初始設定 CodeCommit。

  • 創建一個 CodeCommit 存儲庫。

  • 克隆存儲庫並將其推送到 CodeCommit。

  • 檢視儲 CodeCommit 存庫中的檔案。

  • 與您的團隊共用 CodeCommit 儲存庫。

將 Git 儲存庫遷移到 CodeCommit

步驟 0:存取所需的設定 CodeCommit

您必須先建立和設定 IAM 使用者 CodeCommit,並設定本機電腦以進行存取, CodeCommit 然後才能將儲存庫移轉至。您也應該安裝 AWS CLI 來管理 CodeCommit。雖然你可以在沒有它的情況下執行大多數 CodeCommit 任務,但在命令行或終端機上使用 Git 時,它AWS CLI提供了靈活性。

如果您已設置 CodeCommit,則可以跳到步驟 1:建立 CodeCommit 儲存庫

若要建立和設定 IAM 使用者以存取 CodeCommit
  1. 通過轉到 http://aws.amazon.com 並選擇註冊創建一個 Amazon Web Services 帳戶

  2. 在您的 Amazon Web Services 帳戶中建立 IAM 使用者,或使用現有的使用者。確定您擁有與該 IAM 使用者相關聯的存取金鑰 ID 和秘密存取金鑰。如需詳細資訊,請參閱在您的 Amazon Web Services 帳戶中建立 IAM 使用者

    注意

    CodeCommit 需要AWS Key Management Service。如果您使用現有的 IAM 使用者,請確定沒有附加給使用者的政策明確拒絕AWS KMS執行所需的動作 CodeCommit。如需詳細資訊,請參閱AWS KMS和加密

  3. 登入 AWS Management Console,並開啟位於 https://console.aws.amazon.com/iam/ 的 IAM 主控台。

  4. 在 IAM 主控台的導覽窗格中,選擇 [使者],然後選擇要設定用於 CodeCommit 存取的 IAM 使用者。

  5. Permissions (許可) 標籤上,選擇 Add Permissions (新增許可)

  6. Grant permissions (授予許可) 中,選擇 Attach existing policies directly (直接連接現有政策)

  7. 從策略清單中,選取AWSCodeCommitPowerUser或另一個受管理的策略以進行 CodeCommit 存取。如需詳細資訊,請參閱AWS 受管理的政策 CodeCommit

    選取要附加的政策後,請選擇 [下一步:檢閱] 以檢閱要附加至 IAM 使用者的政策清單。如果清單正確,請選擇 Add permissions (新增許可)

    如需有關 CodeCommit 受管政策以及與其他群組和使用者共用存放庫存取權的詳細資訊,請參閱共用儲存庫AWS CodeCommit的身分驗證與存取控制

安裝及設定 AWS CLI
  1. 在本機電腦上,下載並安裝 AWS CLI。這是從命令列進行互動 CodeCommit 的先決條件。我們建議您安裝AWS CLI版本 2。它是最新的主要版本,AWS CLI並支援所有最新功能。它是唯一支援使用 root 帳戶、同盟存取或暫時登入資料的git-remote-codecommit版本。AWS CLI

    如需詳細資訊,請參閱開始設定 AWS 命令列界面

    注意

    CodeCommit 僅適用於 1.7.38 及AWS CLI更高版本。根據最佳實務,安裝 AWS CLI 或將其升級到可用的最新版本。若要判斷您已安裝的 AWS CLI 版本,請執行 aws --version 命令。

    若要將舊版的 AWS CLI 升級為最新版本,請參閱​安裝 AWS Command Line Interface​。

  2. 執行此命令以確認是否已安裝AWS CLI的命 CodeCommit 令。

    aws codecommit help

    此命令返回命 CodeCommit 令列表。

  3. 使AWS CLI用configure指令來設定使用設定檔,如下所示:

    aws configure

    出現提示時,指定AWS要與之 IAM 使用者搭配使用的存取金鑰和AWS秘密存取金鑰 CodeCommit。此外,請務必指定存放庫的存在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 搭配使用之描述檔的詳細資訊,請參閱下列內容:

    若要連線至儲存庫或另一個儲存庫中的資源AWS 區域,您必須AWS CLI使用預設的 Region 名稱重新配置。支援的預設地區名稱 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 連線端點。如需 IAM、存取金鑰和秘密金鑰的詳細資訊,請參閱如何取得登入資料? 以及管理 IAM 使用者的存取金鑰。如需 AWS CLI 和描述檔的詳細資訊,請參閱具名描述檔

接著,您必須安裝 Git。

  • 對於 Linux,macOS 系統或 Unix

    若要處理 CodeCommit 儲存庫中的檔案、認可和其他資訊,您必須在本機電腦上安裝 Git。 CodeCommit 支援 Git 版本 1.7.9 及更高版本。Git 版本 2.28 支持配置初始提交的分支名稱。我們建議您使用最新版本的 Git。

    若要安裝 Git,我們建議使用 Git 下載等網站。

    注意

    Git 是一個不斷發展的,定期更新的平台。有時候,功能變更可能會影響其使用的方式 CodeCommit。如果您在使用特定 Git 版本時遇到問題 CodeCommit,請檢閱疑難排解.

  • 用於 Windows:

    若要處理 CodeCommit 儲存庫中的檔案、認可和其他資訊,您必須在本機電腦上安裝 Git。 CodeCommit 支援 Git 版本 1.7.9 及更高版本。Git 版本 2.28 支持配置初始提交的分支名稱。我們建議您使用最新版本的 Git。

    要安裝 Git,我們建議您使用 Git 之類的網站。如果您使用此連結來安裝 Git,您可以接受所有安裝預設設定,但下列項目除外:

    注意

    Git 是一個不斷發展的,定期更新的平台。有時候,功能變更可能會影響其使用的方式 CodeCommit。如果您在使用特定 Git 版本時遇到問題 CodeCommit,請檢閱疑難排解.

CodeCommit 支持 HTTPS 和安全殼層身份驗證。若要完成設定,您必須設定 Git 認證 CodeCommit (HTTPS,建議大多數使用者使用)、存取時要使用的 SSH key pair CodeCommit (SSH)、git-remote-codecommit (建議使用聯合存取的使用者使用) 或 AWS CLI (HTTPS) 中包含的認證協助程式。

步驟 1:建立 CodeCommit 儲存庫

在本節中,您將使用主 CodeCommit 控台來建立用於本教學課程其餘部分的 CodeCommit 存放庫。若要使用 AWS CLI 來建立儲存庫,請參閱建立儲存庫 (AWS CLI)

  1. 開啟主 CodeCommit 控台,網址為 https://console.aws.amazon.com/codesuite/codecommit/home

  2. 在區域選取器中,選擇您AWS 區域要建立儲存庫的位置。如需詳細資訊,請參閱區域和 Git 連線端點

  3. 請在 Repositories (儲存庫) 頁面上,選擇 Create repository (建立儲存庫)。

  4. Create repository (建立儲存庫) 頁面的 Repository name (儲存庫名稱) 中,輸入儲存庫的名稱。

    注意

    儲存庫名稱需區分大小寫。該名稱在您的 Amazon Web Services 帳戶中必須是唯一的。AWS 區域

  5. (選用) 在 Description (描述) 中,輸入儲存庫的描述。這可協助您和其他使用者識別儲存庫的用途。

    注意

    描述欄位會在主控台中顯示降價,並接受所有 HTML 字元和有效的 Unicode 字元。如果您是使用GetRepositoryBatchGetRepositories API 的應用程式開發人員,且計劃在 Web 瀏覽器中顯示存放庫描述欄位,請參閱 CodeCommit API 參考

  6. (選用) 選擇 Add tag (新增標籤),以新增一或多個儲存庫標籤 (自訂屬性標籤,可協助您整理和管理您的 AWS 資源) 到您的儲存庫。如需詳細資訊,請參閱標記儲存庫 AWS CodeCommit

  7. (選擇性) 展開其他組態以指定是使用預設金鑰AWS 受管金鑰還是您自己的客戶管理金鑰來加密和解密此儲存庫中的資料。如果您選擇使用自己的客戶管理金鑰,則必須確定該金鑰可在您建立儲存庫的AWS 區域位置使用,且金鑰處於作用中狀態。如需詳細資訊,請參閱AWS Key Management Service和AWS CodeCommit存儲庫的加密

  8. (選擇性) 如果此儲存庫包含 Java 或 Python 程式碼,且您希望 CodeGuru 審核者對其進行分析,請選取啟用 Java 和 Python 的 Amazon CodeGuru 審核者。 CodeGuru Reviewer 使用多種機器學習模型來尋找程式碼瑕疵,並在提取要求中提供改善和修正建議。如需詳細資訊,請參閱 Amazon CodeGuru 審核者使用者指南

  9. 選擇建立

建立用於將 Git 儲存庫遷移到的儲存庫 CodeCommit

建立儲存庫之後,該儲存庫會出現在 Repositories (儲存庫) 清單中。在 URL 欄中,選擇複製圖示,然後選擇要用來連接到 CodeCommit 的通訊協定 (SSH 或 HTTPS)。複製 URL。

例如,如果您為儲存庫命名,MyClonedRepository而且在美國東部 (俄亥俄) 區域使用具有 HTTPS 的 Git 認證,則 URL 如下所示:

https://git-codecommit.us-east-2.amazonaws.com/MyClonedRepository

稍後在步驟 2:克隆存儲庫並推送到 CodeCommit 存儲庫中,您需要用到此 URL。

步驟 2:克隆存儲庫並推送到 CodeCommit 存儲庫

在本節中,您會將 Git 儲存庫複製到本機電腦,建立所謂的本機儲存庫。然後,您將本地回購的內容推送到之前創建的 CodeCommit 存儲庫中。

  1. 從本機電腦上的終端機或命令提示字元執行git clone命令,並--mirror選擇將遠端存放庫的裸副本複本複製到名為的新資料夾中aws-codecommit-demo。這是一個僅用於遷移的裸機儲存庫。它不是與中遷移的存儲庫進行交互的本地存儲庫 CodeCommit。您可以在遷移完成後稍後創 CodeCommit 建它。

    下列範例會將託管於 GitHub (https://github.com/awslabs/ aws-demo-php-simple-app.git) 的示範應用程式複製到名為的目錄中的本機存放庫。aws-codecommit-demo

    git clone --mirror https://github.com/awslabs/aws-demo-php-simple-app.git aws-codecommit-demo
  2. 將目錄變更為您進行複製的目錄。

    cd aws-codecommit-demo
  3. 運行git push命令,指定目標 CodeCommit 存儲庫的 URL 和名稱以及選--all項。(這是您在步驟 1:建立 CodeCommit 儲存庫中複製的 URL)。

    例如,如果您為存放庫命名,MyClonedRepository並且設定為使用 HTTPS,則可以執行下列命令:

    git push https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyClonedRepository --all
    注意

    --all 選項只會推送儲存庫的所有分支。不會推送其他參考,例如標籤。如果您想要推送標籤,請等候到初始推送完成,然後再推送一次,但這次使用 --tags 選項:

    git push ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyClonedRepository --tags

    如需詳細資訊,請參閱 Git 網站上的 Git 推送。如需有關推送大型儲存庫的資訊,尤其是一次推送所有參考 (例如,使用 --mirror 選項),請參閱以增量方式移轉儲存庫

您可以在將存放庫移轉至之後刪除aws-codecommit-demo資料夾及其內容 CodeCommit。若要使用中使用儲存庫的所有正確參考來建立本機存放庫 CodeCommit,請執行不含--mirror選項的git clone指令:

git clone https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyClonedRepository

步驟 3:查看文件 CodeCommit

推送目錄的內容後,您可以使用 CodeCommit 控制台快速查看該存儲庫中的所有文件。

  1. 開啟主 CodeCommit 控台,網址為 https://console.aws.amazon.com/codesuite/codecommit/home

  2. 存放庫中,選擇存放庫的名稱 (例如,MyClonedRepository)。

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

    檢視複製的儲存庫 CodeCommit

步驟 4:共享存 CodeCommit 儲庫

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

為您的儲存庫建立客戶受管政策
  1. 登入 AWS Management Console,並開啟位於 https://console.aws.amazon.com/iam/ 的 IAM 主控台。

  2. Dashboard (儀表板) 導覽區域中,選擇 Policies (政策),然後選擇 Create Policy (建立政策)

  3. 在 [建立原則] 頁面上,選擇 [匯入受管理的原則]。

  4. 在 [匯入受管原則] 頁面的 [篩選器策略] 中,輸入AWSCodeCommitPowerUser。選擇原則名稱旁邊的按鈕,然後選擇 [匯入]。

  5. Create policy (建立政策) 頁面上,選擇 JSON。將 CodeCommit 動作Resource行的「*」部分取代為 CodeCommit 儲存庫的 Amazon 資源名稱 (ARN),如下所示:

    "Resource": [ "arn:aws:codecommit:us-east-2:111111111111:MyDemoRepo" ]
    提示

    若要尋找 CodeCommit 存放庫的 ARN,請移至 CodeCommit 主控台,從清單中選擇存放庫名稱,然後選擇 [設定]。如需詳細資訊,請參閱檢視儲存庫詳細

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

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

    完成編輯後,請選擇 [檢閱原則]。

  6. 在 [檢閱原則] 頁面的 [名稱] 中,輸入原則的新名稱 (例如 AWSCodeCommitPowerUser-MyDemoRepo)。選擇性地提供此原則的說明。

  7. 選擇建立政策

若要管理存放庫的存取權,請為其使用者建立 IAM 群組,將 IAM 使用者新增至該群組,然後附加您在上一步中建立的客戶受管政策。附加存取所需的任何其他原則,例如 IAMUserSSHKeys 或. IAMSelfManageServiceSpecificCredentials

  1. 登入 AWS Management Console,並開啟位於 https://console.aws.amazon.com/iam/ 的 IAM 主控台。

  2. Dashboard (儀表板) 導覽區域中,選擇 Groups (群組),然後選擇 Create New Group (建立新的群組)

  3. Set Group Name (設定群組名稱) 頁面的 Group Name (群組名稱) 中,輸入群組的名稱 (例如,MyDemoRepoGroup),然後選擇 Next Step (下一步)。請考慮將儲存庫名稱包含於群組名稱中。

    注意

    此名稱在 Amazon Web Services 帳戶中必須是唯一的。

  4. 選取您在上一節建立的客戶受管政策旁的方塊 (例如,AWSCodeCommitPowerUser-MyDemoRepo)。

  5. Review (檢閱) 頁面上,選擇 Create Group (建立群組)。IAM 會使用已附加的指定政策建立此群組。該群組會出現在與您的 Amazon Web Services 帳戶關聯的群組清單中。

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

  7. 在群組摘要頁面上,選擇 Users (使用者) 標籤,然後選擇 Add Users to Group (新增使用者到群組)。在顯示與 Amazon Web Services 帳戶關聯的所有使用者的清單中,選取您要允許存取 CodeCommit 存放庫的使用者旁邊的核取方塊,然後選擇 [新增使用者]。

    提示

    您可以使用 [Search (搜尋)] 方塊,依名稱快速尋找使用者。

  8. 新增使用者後,請關閉 IAM 主控台。

建立要使用您設定的政策群組和政策存取的 IAM CodeCommit 使用者之後,請將連線到存放庫所需的資訊傳送給該使用者。

  1. 開啟主 CodeCommit 控台,網址為 https://console.aws.amazon.com/codesuite/codecommit/home

  2. 在區域選取器中,選擇建立儲存庫的AWS 區域位置。儲存庫特定於AWS 區域. 如需詳細資訊,請參閱區域和 Git 連線端點

  3. Repositories (儲存庫) 頁面上,選擇您要共用的儲存庫。

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

  5. 將複製 URL 連同其他任何指示傳送給使用者,例如安裝 AWS CLI、設定描述檔或安裝 Git。請務必包含連線通訊協定的組態資訊 (例如 HTTPS)。