如何从 R 获取当前 git 提交的 sha

How to get sha of current git commit from R

有没有办法从 R 获取当前 GIT 提交的 SHA?我需要通过函数调用(而不是硬字符串)访问它。

我已将 GIT 改编为分析的版本控制系统,并希望在我的中间报告脚注上打印 SHA(我的工作草稿,pdf 格式,获得自己的生命,它是通过查看它们是在什么时候生成的,并不能立即看出;这会产生可重复性问题。

供参考:我正在通过 R Studio 使用 R 3.4.1 并通过 r markdown 创建报告。

您需要调用 git rev-parse 命令,如下所述:How to retrieve the hash for the current commit in Git?

您可以使用 system():

https://stat.ethz.ch/R-manual/R-devel/library/base/html/system.html

放在一起:

system("git rev-parse HEAD", intern=TRUE)

安装 git2r 包然后:

> library(git2r)
> r = revparse_single(path,"HEAD")
> sha(r)
[1] "f5bb1f115e9db0c732840298465488e8dfea5032"

它还在返回对象的其他成员中为您提供有关提交的一些其他信息:

> r$author
name:  Barry Rowlingson
email: b.rowlingson@lancs.ac.uk
when:  2022-01-12 18:37:14 GMT

这些记录在 help(commit) 中,但似乎只有 sha 有访问器函数。