关于git commit 命令解读

 更新时间:2023年11月06日 10:51:47   作者:辰风沐阳  
这篇文章主要介绍了关于git commit 命令,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

1. git commit 介绍

git commit 命令用于将工作区内容或暂存区内容提交到版本库

本文记录 git commit 的常见用法,日常开发中,这几个参数足够使用了

# 将暂存区内容提交到版本库, 进入 vi 命令界面输入提交信息
git commit

# 将某些已被跟踪的文件提交到版本库(包含工作区和版本库)
git commit [file1] [file2] [...]

# 将暂存区内容提交到版本库, 无需进入 vi 命令界面输入提交信息
git commit -m [message]

# 跳过 git add, 将所有已被跟踪的文件更改提交到版本库
git commit -am [message]

# 使用一次新的commit, 替代上一次提交
# 如果代码没有任何新变化, 则用来改写上一次commit的提交信息
git commit --amend -m [message]

2. git commit 使用

将所有暂存区文件提交到版本库,进入 vi 命令页面输入提交信息

git commit

将所有已被 git 跟踪的文件提交到版本库 (包含工作区和暂存区),进入 vi 命令页面输入提交信息

git commit [file1] [file2] [...]

3. git commit -m

最常见的用法如下所示,如果没有 -m 参数,会进入 vi 编辑模式,然后写入提交信息

git commit -m [message]

将某些文件提交到版本库,可以跳过 git add,但必须是已被跟踪的文件

git commit [file1] [file2] -m [message]

4. git commit -am

如果需要将所有已被跟踪的文件更改内容,不想使用 git add,直接添加到版本库

总结: git commit -m 用于提交暂存区中的文件,git commit -am 用于提交已被跟踪的文件

# 将已被跟踪的文件提交的本地库中
git commit -am <message>

commit 命令的 -am 参数等价于执行了下面两个命令

# 将已被跟踪的文件提交到暂存区
git add -u
# 将暂存区中的文件提交到本地库
git commit -m <message>

5. git commit --amend

在日常开发中,难免会出现提交时备注信息打错了,想要修改它。

# 进入 vi 编辑模式,最上方就是提交时填写的备注信息
git commit --amend
# 无需进入 vi 编辑模式,修改上次提交记录的备注信息
git commit --amend -m <message>

修改备注信息后,保存退出即可。

该操作会修改上次提交的索引 id

6. commit 多行提交信息

提交信息大多数人都是使用一行,有时改动内容会比较多,三言两语很难表示清楚,可以使用换行更好的描述改动内容

多行提交信息内容:第一行内容代表是标题,从第二行开始都是内容,以下面多行提交信息为例:

fix:用户模块、购物车模块

  • 1、修复用户无法注册功能
  • 2、修复购物车商品批量删除报错问题
  • 3、修复积分商城支付成功后订单状态没有改变问题

下面是多行提交信息在当前主流代码托管平台上的显示效果

提交多行提交信息的方法:

方法 1(进入 vi 模式输入多行提交信息):

# 进入 vi 命令界面
git commit

# 按下 i,进入 vi 的插入模式,将下面内容粘贴进入后,输入 :wq 回车即可
fix:用户模块、购物车模块
1、修复用户无法注册功能
2、修复购物车商品批量删除报错问题

方法 2(命令行输入多行提交信息):

# 第一步:输入第一行
git commit -m "fix:用户模块、购物车模块

# 第二步:按下回车输入第二行、按下回车输入第三行 ...
1、修复用户无法注册功能

# 第三步:多行提交信息输入结束,尾部加上引号,回车完成提交操作
2、修复购物车商品批量删除报错问题"

方法 3(粘贴提前写好的提交命令)【推荐】:

提前在文本编辑器中写好准备执行的提交命令,复制粘贴到命令行中执行即可,如下所示:

git commit -m "fix:用户模块、购物车模块

  • 1、修复用户无法注册功能
  • 2、修复购物车商品批量删除报错问题
  • 3、修复积分商城支付成功后订单状态没有改变问题

7. commit 背后到底发生了什么

创建一个 git 仓库,用于测试 git commit 背后做了什么操作

echo 'hello git' >> 1.txt
echo 'hello svn' >> 2.txt
git init
git add .
# 提交到版本库,注意 .git 目录下的变化
git commit -m 'add 1.txt 2.txt'

一、执行 git commit 后会在 .git/objects 目录中下面生成两个文件(一个是 commit 类型,一个是 tree 类型)

第二次执行 commit 后,查看这次 commit id 的文件内容,其中 parent 后面的值是上一次提交记录的 commit id

当文件存放在目录中时,tree 类型的 objects 文件中还会有一个 tree(新增了一个 user/4.txt 文件)

二、当前在 master 分支,那么执行 git commit 后会在 .git/refs/heads/master 中写入最新提交记录的 commit id

$ cat .git/refs/heads/master
f08f522f3210eccbcff1d5e16c3da72435583f5e

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 完美解决webstorm启动索引文件卡死的问题

    完美解决webstorm启动索引文件卡死的问题

    下面小编就为大家分享一篇完美解决webstorm启动索引文件卡死的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-11-11
  • 浅析Git 分支的新建与合并

    浅析Git 分支的新建与合并

    这篇文章主要介绍了Git 分支的新建与合并,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-08-08
  • vscode常用插件整理汇总

    vscode常用插件整理汇总

    本文给大家整理汇总了17个常用的vscode装B插件,都是作者费心整理出来的,希望大家能够喜欢
    2020-02-02
  • ImageMagick免费开源图片批处理利器使用详解

    ImageMagick免费开源图片批处理利器使用详解

    这篇文章主要为大家介绍了ImageMagick免费开源图片批处理利器使用详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-04-04
  • VSCode 安装 Copilot 详细过程和实例代码(最新推荐)

    VSCode 安装 Copilot 详细过程和实例代码(最新推荐)

    Copilot 作为一款 AI 辅助编程工具,可以极大地提高开发效率,让编程变得更加轻松愉快,在实际开发过程中,我们要注意审查和测试生成的代码,确保其符合项目需求和标准,这篇文章主要介绍了VSCode 安装 Copilot 详细过程和实例,需要的朋友可以参考下
    2024-05-05
  • git 一个可以提高开发效率的命令:cherry-pick详解

    git 一个可以提高开发效率的命令:cherry-pick详解

    这篇文章主要介绍了git 一个可以提高开发效率的命令:cherry-pick,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-09-09
  • Win10环境下 编译 和 运行 x264的详细过程

    Win10环境下 编译 和 运行 x264的详细过程

    这篇文章主要介绍了Win10环境下编译和运行x264的详细过程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-10-10
  • 搭建websocket消息推送服务,必须要考虑的几个问题

    搭建websocket消息推送服务,必须要考虑的几个问题

    面对各种新场景对websocket功能和性能越来越高的需求,不同的团队有不同的选择,下面给大家分享构建websocket服务时必须要考虑的一些技术特性以及能显著提高用户体验的功能,感兴趣的朋友跟随小编一起看看吧
    2020-04-04
  • Sublime Text 4怎么安装使用

    Sublime Text 4怎么安装使用

    这篇文章主要介绍了Sublime Text 4怎么安装使用,下载对应的安装包,将该exe文件复制到对应的sublime text的安装目录下(与sublime_text.exe同级),右键管理员运行即可,需要的朋友跟随小编一起看看吧
    2022-01-01
  • Wireshark中的http协议包通讯分析

    Wireshark中的http协议包通讯分析

    这篇文章主要为大家介绍了Wireshark中的http协议包通讯分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-12-12

最新评论