git commit 命令详解

前言

CSDN 只用来做博客主站文章的转载

博客主站:https://www.itqaq.com

下面地址路径可能会发生变化,进入博客主站搜索 git commit 即可

本文原地址:https://www.itqaq.com/index/348.html

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 文件)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qa7bBtsh-1673764231116)(null)]

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

$ cat .git/refs/heads/master
f08f522f3210eccbcff1d5e16c3da72435583f5e
  • 37
    点赞
  • 151
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: git checkout命令是Git中一个非常常用的命令,它主要用于切换分支或恢复文件。 切换分支是git checkout命令的最常见用法之一。我们可以使用git checkout <branch-name>命令来切换到指定的分支。例如,我要切换到名为“dev”的分支,只需执行git checkout dev命令即可。 除了切换分支,git checkout命令还可以用于创建新分支。通过git checkout -b <branch-name>命令,我们可以同时创建并切换到一个新的分支。例如,我要创建一个名为“feature”的新分支,只需执行git checkout -b feature命令即可。 此外,git checkout命令还可以用于恢复文件。如果我们在工作区对某个文件进行了修改,但后来发现修改有误,可以通过git checkout <file-name>命令来恢复文件到最近一次的提交状态。例如,我要恢复“index.html”文件的修改,只需执行git checkout index.html命令即可。 需要注意的是,当我们使用git checkout命令切换分支或恢复文件时,Git会将当前分支或文件的内容替换为切换到的分支或恢复的文件的内容。因此,在执行这些操作之前,最好先保存一份当前分支或文件的备份。 综上所述,git checkout命令是Git中一个非常重要的命令,它可以用于切换分支、创建新分支和恢复文件等操作。熟练掌握git checkout命令的使用方法,对于Git版本控制的使用和工作流程起到关键作用。 ### 回答2: Git checkout命令是Git版本控制系统中的一个常用命令,可以用来切换分支、创建分支和恢复文件。下面对Git checkout命令进行详解。 1. 切换分支:使用git checkout命令可以快速在不同分支之间切换。例如,使用命令git checkout branch_name可以切换到指定的分支,将当前工作目录切换到该分支上。 2. 创建分支:可以使用git checkout命令来创建分支。例如,使用命令git checkout -b new_branch_name可以创建一个新的分支,并切换到该分支上。这个命令相当于先使用git branch命令创建新分支,再使用git checkout命令切换到新分支。 3. 恢复文件:Git checkout命令还可以用于恢复文件。如果文件在工作目录中的更改还没有提交到版本库,那么可以使用git checkout命令将文件恢复到最近一次提交的状态。例如,使用命令git checkout -- file_name可以将指定的文件恢复到最近一次提交的状态。 此外,git checkout命令还可以用于切换到特定的提交或标签。例如,使用命令git checkout commit_id可以将工作目录切换到指定的提交,使用命令git checkout tag_name可以将工作目录切换到指定的标签。 需要注意的是,git checkout命令在切换分支或恢复文件时,会将当前工作目录的更改丢弃。因此,在进行操作前应该确保已经保存或提交了当前工作目录的更改。 总之,git checkout命令是Git版本控制系统中一个功能强大且常用的命令,可以帮助开发者在不同分支之间切换、创建分支和恢复文件。使用git checkout命令可以轻松管理和控制项目的版本。 ### 回答3: git checkout命令是Git版本控制系统中的一个命令,用于切换分支、拉取远程分支、还原文件等操作。 1. 切换分支:使用git checkout命令可以在不同的分支之间进行切换。在命令行中输入git checkout <branch_name>,即可切换到指定的分支。 2. 创建分支并切换:git checkout命令也可以用于创建分支并立即切换到该分支。输入git checkout -b <branch_name>,即可创建一个名为<branch_name>的分支,并立即切换到该分支。 3. 拉取远程分支:使用git checkout命令可以拉取远程仓库的分支并在本地创建对应的分支。输入git checkout -b <branch_name> origin/<branch_name>,即可从远程仓库中拉取<branch_name>分支并在本地创建对应的分支。 4. 还原文件:git checkout命令还可以用于还原文件的修改。输入git checkout <file_name>,即可将<file_name>文件恢复到最近一次提交的版本。 需要注意的是,使用git checkout命令会改变当前工作目录和文件的状态,应谨慎操作。如果有未提交的修改或者当前工作目录有冲突文件,切换分支可能会导致这些修改的丢失或冲突的产生。在切换分支之前,应先提交或保存当前的修改。 总而言之,git checkout命令是Git版本控制系统中一个重要的命令,可以实现分支切换、创建与拉取分支以及文件还原等功能。使用该命令时应谨慎操作,确保没有未提交的修改或冲突文件,以免导致数据丢失或冲突。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值