gpt4 book ai didi

git - 如何自动生成提交信息

转载 作者:IT王子 更新时间:2023-10-29 00:47:41 25 4
gpt4 key购买 nike

在某些(非常)罕见的情况下,我会在我的存储库中进行一些不言自明的更改,以至于描述我的意图的提交消息有点无用。在这些情况下,我希望提交消息基本上只列出我添加/删除/编辑的文件。例如:

Added 'dog.h', 'cat.h'

手动提交信息看起来像

Added header files

在这种情况下,最好不必实际编写提交消息,而是自动生成它。

我知道这是非常糟糕的做法,但我只会将其用于用于私有(private)项目的非专业存储库。我知道这很懒惰,但我很好奇如何做到这一点。首选 Unix shell 脚本,但欢迎使用任何解决方案。

问:有没有办法自动生成 git 提交消息,列出已更改的文件?

最佳答案

如果你真的那么懒,你可以使用下面的方法。简而言之,它执行 git status,为 new filesdeletedrenamed 提取行修改,并传递给git commit

# LANG=C.UTF-8 or any UTF-8 English locale supported by your OS may be used
LANG=C git -c color.status=false status \
| sed -n -r -e '1,/Changes to be committed:/ d' \
-e '1,1 d' \
-e '/^Untracked files:/,$ d' \
-e 's/^\s*//' \
-e '/./p' \
| git commit -F -

调整 sed 部分以自定义您希望如何根据 git status 的结果生成消息

给它取一个简短的别名,或者将它保存为脚本(例如 git-qcommit),这样你就可以将它用作 git qcommit

来自 git log 的示例消息

adrianshum:~/workspace/foo-git (master) $ git log
commit 78dfe945e8ad6421b4be74cbb8a00deb21477437
Author: adrianshum <foo@bar.com>
Date: Wed Jan 27 01:53:45 2016 +0000

renamed: bar.txt -> bar2.txt
modified: foo.txt

已编辑:将原来的 grep 更改为 sed,通过在 Changes to be committedUntracked files< 之间添加行,使提交消息生成逻辑更加通用,并生成稍微好看一点的提交消息)

关于git - 如何自动生成提交信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35010953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com