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
-
在本機電腦上,建立您要新增為儲存 CodeCommit庫第一個檔案的檔案。常見的做法是建立降
README.md
價檔案,向其他儲存庫使用者解釋此儲存庫的用途。如果您包含README.md
檔案,則檔案的內容會自動顯示在主控台中 CodeCommit儲存庫的程式碼頁面底部。 -
在終端機或命令列,執行 put-file 命令,並指定:
-
您要新增第一個檔案的儲存庫名稱。
-
您要建立為預設分支的分支名稱。
-
檔案的本機位置。用於此位置的語法因您的本機作業系統而有所不同。
-
您要新增的檔案名稱,包括更新檔案儲存在儲存庫中的路徑。
-
您要與此檔案建立關聯的使用者名稱和電子郵件。
-
說明為何新增此檔案的遞交訊息。
使用者名稱、電子郵件地址和遞交訊息是選用的,但可以協助其他使用者知道誰進行了變更以及原因。如果您未提供使用者名稱, CodeCommit 則預設為使用IAM使用者名稱或主控台登入衍生作為作者名稱。
例如,新增名為 的檔案
README.md
使用範例基底 6 編碼檔案內容,將檔案內容傳送至名為 的儲存庫MyDemoRepo
至名為 的分支development
:aws codecommit put-file --repository-name
MyDemoRepo
--branch-namedevelopment
--file-pathREADME.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 儲存庫。
-
完成必要條件,包括設定 。
重要
如果尚未完成設定,您無法使用 Git 連接到或遞交至儲存庫。
-
確定您是在正確的分支中建立遞交。若要查看可用的分支清單,並了解您目前設定使用的分支,請執行 git branch。將會顯示所有分支。您目前的分支旁會顯示星號 (
*
)。若要切換到不同的分支,請執行 git checkoutbranch-name
。如果這是您的第一次遞交,請執行 git config 命令來設定您的 Git 用戶端,以建立具有您要用於該分支之名稱的初始分支。例如,如果您想要預設分支具有名稱development
:git config --local init.defaultBranch
development
提示
此命令僅適用於 Git v.2.28 及更新版本。
您也可以執行此命令,
development
將所有新建立的儲存庫的預設分支名稱設定為 :git config --global init.defaultBranch
development
-
對分支進行變更 (例如,新增、修改或刪除檔案)。
例如,在本機儲存庫中,以
bird.txt
下列文字建立名為 的檔案:bird.txt -------- Birds (class Aves or clade Avialae) are feathered, winged, two-legged, warm-blooded, egg-laying vertebrates.
-
執行 git status,應該會指出
bird.txt
尚未在任何擱置中包含的遞交:... Untracked files: (use "git add <file>..." to include in what will be committed) bird.txt
-
執行 git add bird.txt 以在擱置中遞交中包含新的檔案。
-
如果您再次執行 git status,應該會看到類似如下的輸出:這表示
bird.txt
現在已屬於擱置中遞交或暫存供遞交:... Changes to be committed: (use "git reset HEAD <file>..." to unstage) new file: bird.txt
-
若要完成遞交,請執行 git commit 搭配
-m
選項 (例如, git commit -m "Adding bird.txt to the repository.
")。-m
選項會建立遞交訊息。 -
如果您再次執行 git status,應該會看到類似如下的輸出:這表示遞交已準備好從本機儲存庫推送到 CodeCommit 儲存庫:
... nothing to commit, working directory clean
-
在您將最終遞交從本機儲存庫推送到 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 儲存庫。(如需指示,請參閱連接到儲存庫。)
-
當您準備好將遞交從本機儲存庫推送到 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 showremote-name
(例如,git remote show origin)。
如需更多選項,請參閱 Git 文件。
使用 建立遞交 AWS CLI
您可以使用 AWS CLI 和 create-commit
命令,在指定分支的頂端建立儲存庫的遞交。您也可以建立未參照的合併遞交來代表合併兩個遞交指標的結果。如需詳細資訊,請參閱建立未參照遞交。
注意
若要搭配 使用 AWS CLI 命令 CodeCommit,請安裝 AWS CLI。如需詳細資訊,請參閱命令列參考。
建立遞交
-
在本機電腦上,進行您要遞交至 CodeCommit儲存庫的變更。
-
在終端機或命令列,執行 create-commit 命令,並指定:
-
您要遞交變更的儲存庫。
-
您要遞交變更的分支。
-
對該分支所進行最新遞交的完整遞交 ID,也稱為頂端或標頭遞交,或父遞交 ID。
-
如果您所做的變更會刪除資料夾的內容,是否保留任何空的資料夾。根據預設,此值為 false。
-
您想要新增、變更或刪除的檔案的相關資訊。
-
要與這些變更建立關聯的使用者名稱和電子郵件。
-
用以說明您為什麼做這些變更的遞交訊息。
使用者名稱、電子郵件地址和遞交訊息是選用的,但可協助其他使用者知道進行變更的人員及原因。如果您未提供使用者名稱, CodeCommit 則預設為使用IAM使用者名稱或主控台登入衍生作為作者名稱。
例如,為將
README.md
檔案新增至名為 的儲存庫的儲存庫建立遞交MyDemoRepo
在 中main
分支。檔案的內容位於 Base64 中,並顯示「歡迎使用我們的團隊儲存庫!」:aws codecommit create-commit --repository-name
MyDemoRepo
--branch-name main --parent-commit-id4c925148EXAMPLE
--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.png
至image1.png
並將其從名為 的目錄中移動pictures
到名為 的目錄,images
,並刪除名為 的檔案ExampleSolution.py
在名為 的儲存庫中MyDemoRepo
在名為 的分支上MyFeatureBranch
其最近遞交的 ID 為4c925148EXAMPLE
:aws codecommit create-commit --repository-name
MyDemoRepo
--branch-nameMyFeatureBranch
--parent-commit-id4c925148EXAMPLE
--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" } ] }
-