創建一個提交 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 markdown 檔案,向其他儲存庫使用者說明此儲存庫的用途。如果您包含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 版本 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文件添加到名為的存儲庫中 MyDemoRepomain 分支。該文件的內容位於 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 用戶和 Windows 用戶進行了優化使用 Bash 模擬器。採用命令列或 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" } ] }