

Amazon CodeCatalyst 不再向新客戶開放。現有客戶可以繼續正常使用該服務。如需詳細資訊，請參閱[如何從 CodeCatalyst 遷移](migration.md)。

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

# 將現有的 Git 儲存庫複製到來源儲存庫
<a name="source-repositories-add-existing"></a>

您可以將現有的 Git 儲存庫複製到 Amazon CodeCatalyst 中的空來源儲存庫。這是使用先前在另一個 Git 儲存庫提供者託管的程式碼，在 CodeCatalyst 中開始使用的快速方法。您可以透過建立鏡像複製，然後將鏡像推送至 CodeCatalyst 來複製儲存庫的內容。或者，如果您有儲存庫的本機儲存庫的內容要新增至 CodeCatalyst，您可以將 CodeCatalyst 來源儲存庫新增為本機儲存庫的另一個遠端，然後推送至空的來源儲存庫。這兩種方法都同樣有效。使用鏡像複製不僅映射分支，還會映射所有參考。這是在 CodeCatalyst 中建立儲存庫工作副本的簡單且乾淨方法。將遠端新增至指向空白 CodeCatalyst 來源儲存庫的本機儲存庫會將儲存庫內容新增至 CodeCatalyst，但也可讓您從本機儲存庫推送到 CodeCatalyst 來源儲存庫和原始 Git 遠端儲存庫。如果您想要在不同遠端儲存庫中維護程式碼，這會很有用，但如果其他開發人員只將程式碼遞交至其中一個遠端，則可能會導致衝突。

下列程序使用基本 Git 命令來完成此任務。在 Git 中完成任務的方法有很多，包括複製。如需詳細資訊，請參閱 [Git 文件。](https://git-scm.com/docs/git-clone)

**重要**  
您必須先在 CodeCatalyst 中建立空儲存庫，才能將內容複製到其中。您還必須擁有個人存取字符。如需詳細資訊，請參閱[建立空白來源儲存庫](source-repositories-create.md#source-repositories-create-empty)及[建立個人存取字符](source-setting-up.md#source-setting-up-pat)。<a name="source-repositories-clone-exisitng-git-mirror"></a>

**使用 `git clone --mirror` 將現有的 Git 儲存庫複製到 CodeCatalyst**

1. 在 CodeCatalyst 主控台中，導覽至您建立空儲存庫的專案。

1. 在專案的摘要頁面上，從清單中選擇空白儲存庫，然後選擇**檢視儲存庫**。或者，在導覽窗格中，選擇**程式碼**，然後選擇**來源儲存庫**。從專案的來源儲存庫清單中選擇空儲存庫的名稱。

1. 複製空白儲存庫的 HTTPS 複製 URL。您將需要此項目來推送鏡像複製。例如，如果您在 ExampleCorp 空間的 MyExampleProject 專案中命名來源儲存庫 MyExampleRepo，且您的使用者名稱為 LiJuan，則複製 URL 可能如下所示：

   ```
   https://LiJuan@git.us-west-2.codecatalyst.aws/v1/ExampleCorp/MyExampleProject/MyExampleRepo
   ```

1. 在命令列或終端機視窗中，使用 `git clone --mirror`命令來建立您要複製到 CodeCatalyst 之 Git 儲存庫的鏡像複製。例如，如果您想要在 GitHub 中建立 codecatalyst-blueprints 儲存庫的鏡像複製，您可以輸入下列命令：

   ```
   git clone --mirror https://github.com/aws/codecatalyst-blueprints.git
   ```

1. 將目錄變更為您進行複製的目錄。

   ```
   cd codecatalyst-blueprints.git
   ```

1. 執行 **git push**命令，指定目的地 CodeCatalyst 來源儲存庫的 URL 和名稱，以及 **--all**選項。（這是您在步驟 3 中複製的 URL。) 例如：

   ```
   git push https://LiJuan@git.us-west-2.codecatalyst.aws/v1/ExampleCorp/MyExampleProject/MyExampleRepo --all
   ```<a name="source-repositories-clone-local-repo"></a>

**新增遠端並將本機儲存庫推送至 CodeCatalyst**

1. 在 CodeCatalyst 主控台中，導覽至您建立空儲存庫的專案。

1. 在專案的摘要頁面上，從清單中選擇空白儲存庫，然後選擇**檢視儲存庫**。或者，在導覽窗格中，選擇**程式碼**，然後選擇**來源儲存庫**。從專案的來源儲存庫清單中選擇空儲存庫的名稱。

1. 複製空白儲存庫的 HTTPS 複製 URL。您將需要此項目來推送鏡像複製。例如，如果您在 ExampleCorp 空間的 MyExampleProject 專案中命名來源儲存庫 MyExampleRepo，且您的使用者名稱為 LiJuan，則複製 URL 可能如下所示：

   ```
   https://LiJuan@git.us-west-2.codecatalyst.aws/v1/ExampleCorp/MyExampleProject/MyExampleRepo
   ```

1. 在命令列或終端機視窗中，將目錄變更為您要推送至 CodeCatalyst 的本機儲存庫。

1. 執行 git remote -v 命令，以查看本機儲存庫的現有遠端。例如，如果您在美國**MyDemoRepo**東部 （俄亥俄） 區域中複製名為 的 AWS CodeCommit 儲存庫的本機儲存庫，您的命令輸出可能如下所示：

   ```
   origin  https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo (fetch)
   origin  https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo (push)
   ```

   如果您想要繼續使用儲存庫，請複製遠端 URL。

1. 使用 `git remote remove`命令移除用於擷取和推送原始伺服器的 CodeCommit 儲存庫 URLs：

   ```
   git remote remove origin
   ```

1. 使用 **git remote add** 命令，將 CodeCatalyst 來源儲存庫 URL 新增為本機儲存庫的擷取和推送遠端。例如：

   ```
   git remote add origin https://LiJuan@git.us-west-2.codecatalyst.aws/v1/ExampleCorp/MyExampleProject/MyExampleRepo
   ```

   這會將 CodeCommit 儲存庫推送 URL 取代為 CodeCatalyst 來源儲存庫 URL，但不會變更擷取 URL。因此，如果您再次執行 git remote -v 命令，您會看到您現在正在從 CodeCommit 遠端儲存庫提取 （擷取） 程式碼，但已設定為將變更從本機儲存庫推送至 CodeCatalyst 來源儲存庫：

   ```
   origin  https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo (fetch)
   origin  https://LiJuan@git.us-west-2.codecatalyst.aws/v1/ExampleCorp/MyExampleProject/MyExampleRepo (push)
   ```

   如果您想要使用 `git remote set-url`命令推送到兩個儲存庫，您可以選擇新增 CodeCommit 遠端 URL：

   ```
   git remote set-url --add --push origin https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo
   ```

1. 執行 `git push`命令，將本機儲存庫推送至所有設定的推送遠端。或者，執行 **git push -u -origin**命令，指定將本機儲存庫推送到兩個儲存庫**--all**的選項。例如：

   ```
   git push -u -origin --all
   ```

**提示**  
根據您的 Git 版本， --全部可能無法將本機儲存庫的所有分支推送至空白儲存庫。您可能需要簽出並分別推送每個分支。