本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在中创建提交Amazon CodeCommit
为新存储库创建第一次提交时,使用Amazon CLI和put-file命令。这将创建第一个提交,并允许您为新存储库创建和指定默认分支。您可以使用 Git 或Amazon CLI在 CodeCommit 仓库中创建提交。如果本地存储库连接到 CodeCommit 存储库,则使用 Git 将提交从本地存储库推送到 CodeCommit 存储库。要直接在 CodeCommit 控制台中创建提交,请参阅创建文件或向Amazon CodeCommit知识库和编辑Amazon CodeCommit存储库中文件的内容。
注意
作为最佳实践,我们建议您使用Amazon CLI、Git 和其他软件支持的最新版本。如果您使用Amazon CLI,请确保安装了最新版本,以确保您使用的版本包含该create-commit
命令。
使用为仓库创建第一次提交Amazon CLI
您可以使用Amazon CLI和put-file
命令为仓库创建第一次提交。使用put-file创建第一次提交,将文件添加到您的空存储库中,然后使用您指定的名称创建分支。它将新分支指定为存储库的默认分支。
注意
要将Amazon CLI命令与一起使用 CodeCommit,请安装Amazon CLI。有关更多信息,请参阅命令行参考:
要为仓库创建第一次提交,请使用Amazon CLI
-
在本地计算机上,创建要作为第一个文件添加到 CodeCommit存储库的文件。常见的做法是创建一个 m
README.md
arkdown 文件,向其他存储库用户解释此存储库的用途。如果您包含README.md
文件,则该文件的内容将自动显示在 CodeCommit控制台中存储库的代码页面的底部。 -
在终端或命令行中,运行 put-file 命令,并指定:
-
要在其中添加第一个文件的存储库的名称。
-
要创建为默认分支的分支的名称。
-
文件的本地位置。用于此位置的语法取决于您的本地操作系统。
-
要添加的文件的名称,包括更新文件在存储库中的存储路径。
-
要与此文件关联的用户名和电子邮件。
-
一条提交消息,说明您为什么添加此文件。
用户名、电子邮件地址和提交消息是可选的,但可以帮助其他用户知道谁进行了更改以及原因。如果您不提供用户名,则 CodeCommit 默认为使用您的 IAM 用户名或控制台登录的派生名称作为作者姓名。
例如,添加一个名为
README.m
d 的文件,其内容为 “欢迎来到我们的团队存储库!” 到一个名为developMyDemoRepo
ment的分支命名的存储
库:aws codecommit put-file --repository-name
MyDemoRepo
--branch-namedevelopment
--file-pathREADME.md
--file-content "Welcome to our team repository!" --author-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-nam
e 是本地 CodeCommit 存储库使用的昵称,分支名称
是要比较的分支的名称。提示
要获取别名,请运行 git remote。要获取分支名称列表,请运行 git branch。当前分支旁边会显示星号 (
*
)。您也可以运行 git status 来获取当前分支的名称。注意
如果您克隆了存储库,则从本地存储库的角度来看,re
mote-nam
e 不是 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-nam
e 是本地 CodeCommit 存储库使用的昵称,分支名称
是要推送到 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
提示
如果向 git push 添加
-u
选项(例如,git push -u origin main),则以后只需运行 git push,因为已设置了上游跟踪信息。要获取上游跟踪信息,请运行 git remote showremote-name
(例如,git remote show origin)。
有关更多选项,请参阅 Git 文档。
使用创建提交Amazon CLI
您可以使用 Amazon CLI 和 create-commit
命令来为指定分支顶端的存储库创建提交。您还可以创建未引用的合并提交来表示合并两个提交说明符的结果。有关更多信息,请参阅创建非引用提交。
注意
要将Amazon CLI命令与一起使用 CodeCommit,请安装Amazon CLI。有关更多信息,请参阅命令行参考:
创建提交
-
在本地计算机上,进行要提交到 CodeCommit 存储库的更改。
-
在终端或命令行中,运行 create-commit 命令,并指定:
-
要将更改提交到的存储库。
-
要将更改提交到的分支。
-
对该分支进行的最新提交的完整提交 ID,也称为顶端或头提交或父提交 ID。
-
如果所做的更改删除了这些文件夹的内容,是否保留任何空文件夹。默认情况下,此值为 false。
-
有关要添加、更改或删除的文件的信息。
-
希望与这些更改关联的用户名和电子邮件。
-
一条提交消息,说明您进行这些更改的原因。
用户名、电子邮件地址和提交消息是可选的,但可帮助其他用户知道更改的执行者及原因。如果您不提供用户名,则 CodeCommit 默认为使用您的 IAM 用户名或控制台登录的派生名称作为作者姓名。
例如,为存储库创建提交,该仓库将
README.md
文件添加到以主
分支命名的MyDemoRepo
存储库。该文件的内容位于 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": [] }
要创建修改名为
image1.pngfile1.py
和file2.txt
的文件的提交,请将文件从picture.png
重命名为并将其从名为 pic
tures 的目录移至名为 imag
es 的目录,然后删除存储库中名为ExampleSolution.py
的文件,该分支MyFeatureBranch
名为最近提交的 ID 为4c925148
Example:MyDemoRepo
aws codecommit create-commit --repository-name
MyDemoRepo
--branch-nameMyFeatureBranch
--parent-commit-id4c925148EXAMPLE
--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" } ] }
-