如何访问 git 提交变量 (python)?

How to get access to git commit variables (python)?

我是 git 的新手,开始了解它的工作原理。

我正在尝试创建一个个人 pre-commit 钩子来训练自己,我想访问变量,例如提交者的用户名、提交的文件数、他们的名字、标题等。

我该怎么做?

我读了这个帖子 https://git-scm.com/book/en/v2/Git-Internals-Environment-Variables 并且我知道存在一些我感兴趣的变量,但正如我所说,我的问题是不知道如何访问它们。

哦,我正在 python 中编写我的钩子。

那篇文章中的变量都是提供给git的配置变量,不是变量git提供给。除非您自己设置它们,否则它们将是空的。

pre-commit 未提供任何参数。

提交者的名字显然是执行命令的用户:

import getpass
username = getpass.getuser()

要查看将提交的文件(以及对每个文件执行的操作),请使用 git diff --name-status:

import subprocess
diffs = subprocess.check_output(['git', 'diff', '--name-status'],
                                stderr=subprocess.STDOUT)
diff_dict = dict(list(reversed(item.split('\t')))
                 for item in diffs.split('\n') if item != '')

我不知道你说的"titles"是什么意思。