0


Git 笔记 - git commit

文章目录

01 git commit

如果没有设置 -m 选项,直接运行

git commit

会出现什么情况呢?

答案是:

Git

会尝试为你打开一个编辑器以填写提交信息。 如果

Git

在你对它的配置中找不到相关信息,默认会打开

vim

。如下图:
commit0
接下来,需要键盘敲

i

进入编辑模式,而后在第一行,即红色区域部分填写提交信息:
commit1
信息编辑好之后按

ESC

,键盘敲

:wq

,即保存并退出:
commit2
最后你会看到控制台的返回消息:

$ gitadd.
$ git commit
[master 1bbbda5] init hello
 1file changed, 1 insertion(+)
 create mode 100644 hello.js

02 git commit -m

# 方式 1git commit -m <msg># 方式 2git commit --message=<msg>

描述 :使用给定

msg

作为提交消息,即

Git

就不会打开编辑器了,也就省略了上面的步骤了。

注意

-m

-c
-C
-F

是相互排斥的!

03 git commit -a

# 方式 1git commit -a
 # 方式 2git commit --all

描述 :修改文件后不需要执行

git add

命令,直接就可以提交。

注意 :新建的文件除外!

04 git commit -p

# 方式 1git commit -p
 # 方式 2git commit --patch

描述 :使用交互式界面来选择要提交的更改,让用户有机会在将修改后的内容提交前查看差异。

使用示范

$ git commit -p
diff --git a/hello.js b/hello.js
index 2ccb4c8..31b09bc 100644
--- a/hello.js
+++ b/hello.js
@@ -1,2 +1,3 @@     # ----这里会显示你的修改----
-let hello =1;# ----这里会显示你的修改----
+let hello =123;let world =456;
+let people =789;# ----这里会显示你的修改----(1/1) Stage this hunk [y,n,q,a,d,e,?]?  # 此处需要输入你想要执行的操作
# --------- 下面是每个选项的意思 ---------- 
y - stage this hunk
n - do not stage this hunk
q - quit; do not stage this hunk or any of the remaining ones
a - stage this hunk and all later hunks in the file
d - do not stage this hunk or any of the later hunks in the file
e - manually edit the current hunk
? - print help
# --------- 上面是每个选项的意思 ---------- 

05 git commit -C

# 方式 1git commit -C
 # 方式 2git commit --reuse-message=<commit>

描述 :获取现有的提交对象

commitId

,并在创建提交时重用日志消息和作者信息(包括时间戳)。换句话说就是重新使用之前提交过的信息去提交新的更改。

使用示范

# 先查看重用信息的 commitId
$ git log
commit aa63767da23f357136333b7ce18175c414b189ec (HEAD -> master)
Author: xxxxxx<xxxxxx.com>
Date:   Mon Oct 2516:30:41 2021 +0800

    change hello
    
commit fcadef453058fb4b97b7c0cbc2994bed3a81302e
Author: xxxxxx<xxxxxx.com>
Date:   Mon Oct 2516:30:06 2021 +0800

    init
    
# 举例:重用 init 的提交信息
$ git commit -C fcadef453058fb4b97b7c0cbc2994bed3a81302e
[master e82bdf2] init
 Date: Mon Oct 2516:30:06 2021 +0800
 1file changed, 1 insertion(+), 1 deletion(-)

结果如下:(作者,时间和信息都是一样的噢)
commitC

06 git commit -c

# 方式 1git commit -c
 # 方式 2git commit --reedit-message=<commit>

描述 :与

-C

类似,但使用

-c

会调用编辑器,以便用户可以进一步编辑提交消息,即与

-C

相比多了一项修改编辑的步骤。

07 git commit -n

# 方式 1git commit -n
 # 方式 2git commit --no-verify

描述 :这个选项可以绕过

pre-commit

commit-msg

08 git commit --amend

描述 :通过创建新提交来替换当前分支的提交信息。

使用示范 1 :修改上一次的提交信息。

# 查看最新的提交信息
$ git log   
commit 155f771f90997b88dd71d4952dee3cf15618af1b (HEAD -> master)
Author: xxxxxx<xxxxxx.com>
Date:   Mon Oct 2517:15:08 2021 +0800

    edit test

commit 69322b677a3a6be363ba559610988607480677ce
Author: xxxxxx<xxxxxx.com>
Date:   Mon Oct 2517:11:30 2021 +0800

    init

# 举例:将 edit test 提交信息修改为 modify test

执行命令

git commit --amend

,会出现下面的编辑界面,将红色框选区中修改为想要的信息:
在这里插入图片描述
结果预览:修改之后查看提交记录,发现提交信息已经按照预期进行了修改,同时需要注意

commitId

也发生了变化。
在这里插入图片描述

使用示范 2 :将最近的修改追加到上一次的提交上。

# 查看最新的提交信息
$ git log           
commit 6681933eee000dcb99acc18f6c0fb246c551a7ad (HEAD -> master)
Author: xxxxxx<xxxxxx.com>
Date:   Mon Oct 2517:15:08 2021 +0800

    modify test

commit 69322b677a3a6be363ba559610988607480677ce
Author: xxxxxx<xxxxxx.com>
Date:   Mon Oct 2517:11:30 2021 +0800

    init

# 查看当前文件状态
$ git status
On branch master
Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)(use "git restore <file>..." to discard changes in working directory)
        modified:   test.js

no changes added to commit (use "git add" and/or "git commit -a")# 暂存文件
$ gitadd.# 将修改追加到上一次提交
$ git commit --amend

# 如果需要修改提交信息,则可以在出现编辑界面时进行修改;# 若想保持上次提交信息,则直接退出 :q 编辑界面;# ------------- 下面是编辑器显示内容------------
modify test# Please enter the commit message for your changes. Lines starting# with '#' will be ignored, and an empty message aborts the commit.## Date:      Mon Oct 25 17:15:08 2021 +0800## On branch master# Changes to be committed:#       modified:   test.js#
~                                                                                                                                                                  
~                                                                                                                                                                  
~                                                                                                                                                                  
"~/Documents/code/test/.git/COMMIT_EDITMSG" 11L, 266B
# ------------- 上面是编辑器显示内容------------

结果预览:追加提交完成,

commitId

也发生了变化。
在这里插入图片描述

标签: git git commit github

本文转载自: https://blog.csdn.net/Yuki_yuhan/article/details/120934822
版权归原作者 小晗同学 所有, 如有侵权,请联系我们删除。

“Git 笔记 - git commit”的评论:

还没有评论