推送遞交至其他 Git 儲存庫 - AWS CodeCommit

AWS CodeCommit 不再提供給新客戶。的現有客戶 AWS CodeCommit 可以繼續正常使用服務。進一步了解"

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

推送遞交至其他 Git 儲存庫

您可以設定本機儲存庫將變更推送到兩個遠端儲存庫。例如,您在試用 AWS CodeCommit時可能需要繼續使用現有的 Git 儲存庫解決方案。請遵循這些基本步驟,將本機儲存庫中的變更推送至 CodeCommit 和個別的 Git 儲存庫。

提示

如果您沒有 Git 儲存庫,您可以在 CodeCommit以外的服務上建立空儲存庫,然後將儲存 CodeCommit 庫遷移至其中。您應該遵循類似於遷移到 CodeCommit中的步驟。

  1. 從命令提示字元或終端機,切換到您的本機儲存庫目錄並執行 git remote -v 命令。您應該會看到類似下列的輸出:

    對於 HTTPS:

    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)

    對於 SSH:

    origin ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo (fetch) origin ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo (push)
  2. 執行git remote set-url --add --push origin git-repository-name命令,其中 git-repository-name 是您要託管程式碼的 Git 儲存庫URL名稱。這會將 origin 的推送目的地變更為該 Git 儲存庫。

    注意

    git remote set-url --add --push 會覆寫推送URL的預設值,因此您必須執行此命令兩次,如後續步驟所示。

    例如,下列命令會將原始伺服器推送變更為 some-URL/MyDestinationRepo:

    git remote set-url --add --push origin some-URL/MyDestinationRepo

    此命令不會傳回任何結果。

    提示

    如果您要推送到需要憑證的 Git 儲存庫,請務必在憑證協助程式或 組態中設定這些憑證 some-URL 字串。否則,對該儲存庫的推送會失敗。

  3. 再次執行 git remote -v 命令,應該會建立類似如下的輸出:

    對於 HTTPS:

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

    對於 SSH:

    origin ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo (fetch) origin some-URL/MyDestinationRepo (push)
  4. 現在請新增 CodeCommit 儲存庫。git remote set-url --add --push origin 再次執行,這次使用儲存庫的 CodeCommit URL和 儲存庫名稱。

    例如,下列命令會將原始伺服器推送新增至 https://git-codecommit.us-east-2.amazonawscom/v1/repos/MyDemoRepo:

    對於 HTTPS:

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

    對於 SSH:

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

    此命令不會傳回任何結果。

  5. 再次執行 git remote -v 命令,應該會建立類似如下的輸出:

    對於 HTTPS:

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

    對於 SSH:

    origin ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo (fetch) origin some-URL/MyDestinationRepo (push) origin ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo (push)

    您現在有兩個 Git 儲存庫作為推送的目的地,但您的推送會前往 some-URL/MyDestinationRepo 優先。如果推送至該儲存庫失敗,則您的遞交不會推送至任一儲存庫。

    提示

    如果其他儲存庫需要您要手動輸入的憑證,請考慮變更推送的順序,以便 CodeCommit 先推送到 。執行 git remote set-url --delete 來刪除先推送到的儲存庫,然後執行 git remote set-url --add 以再次新增此儲存庫,使之成為清單中的第二個推送目的地。

    如需更多選項,請參閱 Git 文件。

  6. 為了驗證您現在同時推送到這兩個遠端儲存庫,請使用文字編輯器,在本機儲存庫中建立以下文字檔案:

    bees.txt ------- Bees are flying insects closely related to wasps and ants, and are known for their role in pollination and for producing honey and beeswax.
  7. 執行 git add 將變更暫存在本機儲存庫:

    git add bees.txt
  8. 執行 git commit 來遞交本機儲存庫中的變更:

    git commit -m "Added bees.txt"
  9. 若要將遞交從本機儲存庫推送至遠端儲存庫,git push -u remote-name branch-name請在 中執行 remote-name 是本機儲存庫用於遠端儲存庫的暱稱,以及 branch-name 是要推送至儲存庫的分支名稱。

    提示

    只有在第一次推送時才需要使用 -u 選項。即會設定上游追蹤資訊。

    例如,執行 git push -u origin main 會顯示推送同時前往兩個遠端儲存庫的預期分支,且輸出類似如下:

    對於 HTTPS:

    Counting objects: 5, done. Delta compression using up to 4 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 5.61 KiB | 0 bytes/s, done. Total 3 (delta 1), reused 0 (delta 0) To some-URL/MyDestinationRepo a5ba4ed..250f6c3 main -> main Counting objects: 5, done. Delta compression using up to 4 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 5.61 KiB | 0 bytes/s, done. Total 3 (delta 1), reused 0 (delta 0) remote: To https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo a5ba4ed..250f6c3 main -> main

    對於 SSH:

    Counting objects: 5, done. Delta compression using up to 4 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 5.61 KiB | 0 bytes/s, done. Total 3 (delta 1), reused 0 (delta 0) To some-URL/MyDestinationRepo a5ba4ed..250f6c3 main -> main Counting objects: 5, done. Delta compression using up to 4 threads. Compressing objects: 100% (3/3), done. Writing objects: 100% (3/3), 5.61 KiB | 0 bytes/s, done. Total 3 (delta 1), reused 0 (delta 0) remote: To ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo a5ba4ed..250f6c3 main -> main

如需更多選項,請參閱 Git 文件。