Amazon CodeCommit 不再向新客户提供。 Amazon CodeCommit 的现有客户可以继续正常使用该服务。了解更多
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
在中创建提交 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存储库的文件。一个常见做法是创建一个
README.md
markdown 文件,向其他存储库用户说明此存储库的用途。如果您包含README.md
文件,则该文件的内容将自动显示在 CodeCommit控制台中仓库代码页面的底部。 -
在终端或命令行中,运行 put-file 命令,并指定:
-
要将第一个文件添加到的存储库的名称。
-
要创建为默认分支的分支的名称。
-
文件的本地位置。用于此位置的语法取决于您的本地操作系统。
-
要添加的文件的名称,包括更新的文件在存储库中的存储路径。
-
您希望与此文件关联的用户名和电子邮件。
-
一条提交消息,说明您为什么添加此文件。
用户名、电子邮件地址和提交消息是可选的,但可帮助其他用户了解执行更改的人员以及原因。如果您不提供用户名,则 CodeCommit 默认使用您的IAM用户名或控制台登录名的派生形式作为作者姓名。
例如,要将名为 base 6
README.md
的编码文件内容为示例的文件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
是本地存储库使用的昵称,branch-name
也是要推送到 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
文件添加到分main
支MyDemoRepo
中名为的存储库中。该文件采用 Base64 格式,内容为“Welcome to our team repository!”: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" } ] }
-