自学内容网 自学内容网

git commit

1.简介

git commit 用于将工作区或暂存区的变更提交至仓库。

每次使用 git commit 都会在本地版本库通过 SHA1 生成一个40 位的哈希值,这个哈希值也叫 commit-id。commit-id 在版本回退的时候是非常有用的,它相当于一个快照,可以在未来任何时候通过 git reset 命令回退到指定版本。

2.格式

git commit [-a | --interactive | --patch] [-s] [-v] [-u<mode>] [--amend]
   [--dry-run] [(-c | -C | --squash) <commit> | --fixup [(amend|reword):]<commit>]
   [-F <file> | -m <msg>] [--reset-author] [--allow-empty]
   [--allow-empty-message] [--no-verify] [-e] [--author=<author>]
   [--date=<date>] [--cleanup=<mode>] [--[no-]status]
   [-i | -o] [--pathspec-from-file=<file> [--pathspec-file-nul]]
   [(--trailer <token>[(=|:)<value>])…​] [-S[<keyid>]]
   [--] [<pathspec>…​]

3.选项

以下是一些常用选项及其说明:

-m, --message=<msg>
用于直接在命令行中指定提交信息。
-a, --all
自动将所有已跟踪的文件的更改和删除添加到提交中(不包括新文件)。
-v, --verbose
在编辑器中显示更改的内容,便于查看哪些更改被提交。
--amend
修改最新的提交,允许你添加新的更改或修改提交信息。
--no-edit
在不启动编辑器的情况下使用选定的提交消息。例如与 --amend 一起使用,在不更改提交消息的情况下修改提交。
-F, --file=<file>
从给定文件中获取提交消息。使用 - 从标准输入中读取消息。
--date=<date>
手动指定提交的日期和时间。
--dry-run
显示将要提交的内容,但不实际执行提交。
-h, --help
查看帮助信息。

4.示例

(1)提交暂存区的变更到仓库并备注。

git commit -m <comment>

(2)将工作区被修改和被删除的文件,以及暂存区的变更提交至版本库并备注。必须要备注,不然无法提交。

git commit (-a | --all) -m <comment>

# 等同于
git add -u
git commit -m <comment>

注意,新加的文件(即没有被 Git 系统管理的文件)是不能被提交到本地仓库的。建议一般不要使用 -a | --all 参数,正常的提交过程还是先使用 git add 将被改动的文件添加到暂存区,再用 git commit 提交到本地版本库。

(3)修改最近一次提交的消息。

git commit --amend

上面的命令会打开编辑器以修改最近一次提交的消息。

修改完成后会生成一个新的提交对象,从而导致新的 commit id。这是因为 Git 将新的提交消息创建为一个新的提交对象,而不是修改原始的提交对象。

需要注意的是,使用 git commit --amend 命令修改提交消息时,只能修改最近的一次提交。如果需要修改更早的提交消息,可以使用 git rebase -i 命令来进行交互式重写历史。

(4)修改最近的一次提交的信息。

git commit --amend -m <new message>

这将替换掉最近一次提交的 message。如果你已经将这次提交推送到远程仓库,修改后需要强制推送:

git push --force

使用 --amend 参数,一般出于两种考虑:

  • 最近一次提交有 bug 需要修复,但又不想保留最近一次的提交记录。
  • 减少提交记录的数量,保持提交记录的干净整洁。

(5) 查看帮助。

commit 还有许多参数有其他效果,一般来说了解上述操作足以应对日常开发。

git commit -h | --help

5.小结

git commit 是 Git 中一个非常重要的命令,用于将已暂存的更改(staged changes)记录到版本历史中。

通过使用 git commit,开发者可以创建一个快照,保存代码的当前状态,并附上描述性的信息,以便将来追踪和理解代码更改的理由。


参考文献

Git - git-commit Documentation


原文地址:https://blog.csdn.net/K346K346/article/details/143845550

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!