在 中建立遞交 AWS CodeCommit - AWS CodeCommit

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

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

在 中建立遞交 AWS CodeCommit

當您為新儲存庫建立第一個遞交時,您可以使用 AWS CLI 和 put-file命令。這會建立第一個遞交,並允許您為新儲存庫建立和指定預設分支。您可以使用 Git 或 AWS CLI 在 CodeCommit 儲存庫中建立遞交。如果本機儲存庫已連線至 CodeCommit 儲存庫,您可以使用 Git 將遞交從本機儲存庫推送到 CodeCommit 儲存庫。若要直接在 CodeCommit 主控台中建立遞交,請參閱 建立檔案或將檔案新增至AWS CodeCommit儲存庫編輯AWS CodeCommit儲存庫中檔案的內容

注意

最佳實務是,建議您使用 AWS CLI、Git 和其他軟體的最新支援版本。如果您使用 AWS CLI,請確定已安裝最新版本,以確保您使用的版本包含 create-commit命令。

使用 建立儲存庫的第一個遞交 AWS CLI

您可以使用 AWS CLI 和 put-file命令來建立儲存庫的第一個遞交。使用 put-file會建立第一個遞交,將檔案新增至空儲存庫,並建立具有您指定名稱的分支。它會指定新分支做為儲存庫的預設分支。

注意

若要搭配 使用 AWS CLI 命令 CodeCommit,請安裝 AWS CLI。如需詳細資訊,請參閱命令列參考

使用 建立儲存庫的第一個遞交 AWS CLI

  1. 在本機電腦上,建立您要新增為儲存 CodeCommit庫第一個檔案的檔案。常見的做法是建立降README.md價檔案,向其他儲存庫使用者解釋此儲存庫的用途。如果您包含README.md檔案,則檔案的內容會自動顯示在主控台中 CodeCommit儲存庫的程式碼頁面底部。

  2. 在終端機或命令列,執行 put-file 命令,並指定:

    • 您要新增第一個檔案的儲存庫名稱。

    • 您要建立為預設分支的分支名稱。

    • 檔案的本機位置。用於此位置的語法因您的本機作業系統而有所不同。

    • 您要新增的檔案名稱,包括更新檔案儲存在儲存庫中的路徑。

    • 您要與此檔案建立關聯的使用者名稱和電子郵件。

    • 說明為何新增此檔案的遞交訊息。

    使用者名稱、電子郵件地址和遞交訊息是選用的,但可以協助其他使用者知道誰進行了變更以及原因。如果您未提供使用者名稱, CodeCommit 則預設為使用IAM使用者名稱或主控台登入衍生作為作者名稱。

    例如,新增名為 的檔案 README.md 使用範例基底 6 編碼檔案內容,將檔案內容傳送至名為 的儲存庫 MyDemoRepo 至名為 的分支 development:

    aws codecommit put-file --repository-name MyDemoRepo --branch-name development --file-path README.md --file-content "EXAMPLE0123456789example0123456789EXAMPLE1" --name "Mary Major" --email "mary_major@example.com" --commit-message "I added a quick readme for our new team repository."

    如果此命令成功執行,您會看到類似如下的輸出傳回:

    { "commitId": "724caa36EXAMPLE", "blobId": "a8a94062EXAMPLE", "treeId": "08b2fc73EXAMPLE" }

使用 Git 用戶端建立遞交

您可以使用安裝在本機電腦上的 Git 用戶端來建立遞交,然後將這些遞交推送到您的 CodeCommit 儲存庫。

  1. 完成必要條件,包括設定

    重要

    如果尚未完成設定,您無法使用 Git 連接到或遞交至儲存庫。

  2. 確定您是在正確的分支中建立遞交。若要查看可用的分支清單,並了解您目前設定使用的分支,請執行 git branch。將會顯示所有分支。您目前的分支旁會顯示星號 (*)。若要切換到不同的分支,請執行 git checkout branch-name。如果這是您的第一次遞交,請執行 git config 命令來設定您的 Git 用戶端,以建立具有您要用於該分支之名稱的初始分支。例如,如果您想要預設分支具有名稱 development:

    git config --local init.defaultBranch development
    提示

    此命令僅適用於 Git v.2.28 及更新版本。

    您也可以執行此命令,development將所有新建立的儲存庫的預設分支名稱設定為 :

    git config --global init.defaultBranch development
  3. 對分支進行變更 (例如,新增、修改或刪除檔案)。

    例如,在本機儲存庫中,以bird.txt下列文字建立名為 的檔案:

    bird.txt -------- Birds (class Aves or clade Avialae) are feathered, winged, two-legged, warm-blooded, egg-laying vertebrates.
  4. 執行 git status,應該會指出 bird.txt 尚未在任何擱置中包含的遞交:

    ... Untracked files: (use "git add <file>..." to include in what will be committed) bird.txt
  5. 執行 git add bird.txt 以在擱置中遞交中包含新的檔案。

  6. 如果您再次執行 git status,應該會看到類似如下的輸出:這表示 bird.txt 現在已屬於擱置中遞交或暫存供遞交:

    ... Changes to be committed: (use "git reset HEAD <file>..." to unstage) new file: bird.txt
  7. 若要完成遞交,請執行 git commit 搭配 -m 選項 (例如, git commit -m "Adding bird.txt to the repository.")。-m 選項會建立遞交訊息。

  8. 如果您再次執行 git status,應該會看到類似如下的輸出:這表示遞交已準備好從本機儲存庫推送到 CodeCommit 儲存庫:

    ... nothing to commit, working directory clean
  9. 在您將最終遞交從本機儲存庫推送到 CodeCommit 儲存庫之前,您可以執行 來查看正在推送的內容git diff --stat remote-name/branch-name,其中 remote-name 是本機儲存庫用於 CodeCommit 儲存庫的暱稱,以及 branch-name 是要比較的分支名稱。

    提示

    若要取得別名,請執行 git remote。若要取得分支名稱的清單,請執行 git branch。目前的分支旁會顯示星號 (*)。您也可以執行 git status 以取得目前的分支名稱。

    注意

    如果您已複製儲存庫,請從本機儲存庫的角度來看,remote-name 不是 CodeCommit 儲存庫的名稱。當您複製儲存庫時,remote-name 會自動設定為 origin

    例如,git diff --stat origin/main 會顯示與下列類似的輸出:

    bird.txt | 1 + 1 file changed, 1 insertion(+)

    輸出假設您已將本機儲存庫連線至 CodeCommit 儲存庫。(如需指示,請參閱連接到儲存庫。)

  10. 當您準備好將遞交從本機儲存庫推送到 CodeCommit 儲存庫時,請執行 git push remote-name branch-name,其中 remote-name 是本機儲存庫用於 CodeCommit 儲存庫的暱稱,以及 branch-name 是要推送到 CodeCommit 儲存庫的分支名稱。

    例如,執行 git push origin main 會顯示與下列類似的輸出:

    對於 HTTPS:

    Counting objects: 7, done. Delta compression using up to 4 threads. Compressing objects: 100% (4/4), done. Writing objects: 100% (5/5), 516 bytes | 0 bytes/s, done. Total 5 (delta 2), reused 0 (delta 0) remote: To https://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo b9e7aa6..3dbf4dd main -> main

    對於 SSH:

    Counting objects: 7, done. Delta compression using up to 4 threads. Compressing objects: 100% (4/4), done. Writing objects: 100% (5/5), 516 bytes | 0 bytes/s, done. Total 5 (delta 2), reused 0 (delta 0) remote: To ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo b9e7aa6..3dbf4dd main -> main
    提示

    如果您將 -u 選項新增至 git push (例如,git push -u origin main),則未來只需執行 git push,因為已設定上游追蹤資訊。若要取得上游追蹤資訊,請執行 git remote show remote-name (例如,git remote show origin)。

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

使用 建立遞交 AWS CLI

您可以使用 AWS CLI 和 create-commit命令,在指定分支的頂端建立儲存庫的遞交。您也可以建立未參照的合併遞交來代表合併兩個遞交指標的結果。如需詳細資訊,請參閱建立未參照遞交

注意

若要搭配 使用 AWS CLI 命令 CodeCommit,請安裝 AWS CLI。如需詳細資訊,請參閱命令列參考

建立遞交
  1. 在本機電腦上,進行您要遞交至 CodeCommit儲存庫的變更。

  2. 在終端機或命令列,執行 create-commit 命令,並指定:

    • 您要遞交變更的儲存庫。

    • 您要遞交變更的分支。

    • 對該分支所進行最新遞交的完整遞交 ID,也稱為頂端或標頭遞交,或父遞交 ID。

    • 如果您所做的變更會刪除資料夾的內容,是否保留任何空的資料夾。根據預設,此值為 false。

    • 您想要新增、變更或刪除的檔案的相關資訊。

    • 要與這些變更建立關聯的使用者名稱和電子郵件。

    • 用以說明您為什麼做這些變更的遞交訊息。

    使用者名稱、電子郵件地址和遞交訊息是選用的,但可協助其他使用者知道進行變更的人員及原因。如果您未提供使用者名稱, CodeCommit 則預設為使用IAM使用者名稱或主控台登入衍生作為作者名稱。

    例如,為將README.md檔案新增至名為 的儲存庫的儲存庫建立遞交 MyDemoRepo 在 中 main 分支。檔案的內容位於 Base64 中,並顯示「歡迎使用我們的團隊儲存庫!」:

    aws codecommit create-commit --repository-name MyDemoRepo --branch-name main --parent-commit-id 4c925148EXAMPLE --put-files "filePath=README.md,fileContent=V2VsY29tZSB0byBvdXIgdGVhbSByZXBvc2l0b3J5IQo="
    提示

    若要取得父層遞交 ID,請執行 get-branch 命令。

    如果此命令成功執行,您會看到類似如下的輸出傳回:

    { "commitId": "4df8b524-EXAMPLE", "treeId": "55b57003-EXAMPLE", "filesAdded": [ { "blobId": "5e1c309dEXAMPLE", "absolutePath": "meeting.md", "fileMode": "NORMAL" } ], "filesDeleted": [], "filesUpdated": [] }

    建立對名為 的檔案進行變更的遞交 file1.py 以及 file2.txt,從 重新命名檔案 picture.pngimage1.png 並將其從名為 的目錄中移動 pictures 到名為 的目錄,images,並刪除名為 的檔案 ExampleSolution.py 在名為 的儲存庫中 MyDemoRepo 在名為 的分支上 MyFeatureBranch 其最近遞交的 ID 為 4c925148EXAMPLE:

    aws codecommit create-commit --repository-name MyDemoRepo --branch-name MyFeatureBranch --parent-commit-id 4c925148EXAMPLE --author-name "Saanvi Sarkar" --email "saanvi_sarkar@example.com" --commit-message "I'm creating this commit to update a variable name in a number of files." --keep-empty-folders false --put-files '{"filePath": "file1.py", "fileMode": "EXECUTABLE", "fileContent": "bucket_name = sys.argv[1] region = sys.argv[2]"}' '{"filePath": "file2.txt", "fileMode": "NORMAL", "fileContent": "//Adding a comment to explain the variable changes in file1.py"}' '{"filePath": "images/image1.png", "fileMode": "NORMAL", "sourceFile": {"filePath": "pictures/picture.png", "isMove": true}}' --delete-files filePath="ExampleSolution.py"
    注意

    --put-files 區段的語法會根據您的作業系統而有所不同。上述範例已針對 Linux、macOS 或 Unix 使用者和具有 Bash 模擬器的 Windows 使用者進行最佳化。採用命令列或 Powershell 的 Windows 使用者,應該使用該系統適用的語法。

    如果此命令成功執行,您會看到類似如下的輸出傳回:

    { "commitId": "317f8570EXAMPLE", "treeId": "347a3408EXAMPLE", "filesAdded": [ { "absolutePath": "images/image1.png", "blobId": "d68ba6ccEXAMPLE", "fileMode": "NORMAL" } ], "filesUpdated": [ { "absolutePath": "file1.py", "blobId": "0a4d55a8EXAMPLE", "fileMode": "EXECUTABLE" }, { "absolutePath": "file2.txt", "blobId": "915766bbEXAMPLE", "fileMode": "NORMAL" } ], "filesDeleted": [ { "absolutePath": "ExampleSolution.py", "blobId": "4f9cebe6aEXAMPLE", "fileMode": "EXECUTABLE" }, { "absolutePath": "pictures/picture.png", "blobId": "fb12a539EXAMPLE", "fileMode": "NORMAL" } ] }