在R代码中显示Git版本

use*_*372 8 git r rstudio knitr

我使用Git作为版本控制(目前是集中式工作流程,但我想转移到功能分支或gitflow工作流程).我使用RStudio/Knitr来编译PDF文档,并想知道如何在PDF中自动包含当前的Git版本 - 如果可行的话?这样,当有人用我给他们的文件回复我时,我知道如何回到代码中的那一点.任何建议将不胜感激,谢谢 - 玛丽.

编辑:关键词是我的想法,虽然根据这篇文章(gelato.unsw.edu.au/archives/git/0610/28891.html)不推荐.有关帮助程序脚本的建议吗? - 刚刚用户1420372

hrb*_*str 9

这样做只是为了呈现一个坚果汤的例子.这是@Wanter Nuata的想法.

这是一个小小的knitr doc:

---
output: pdf_document
---

```{r}
print(system("git rev-parse --short HEAD", intern = TRUE))
```
Run Code Online (Sandbox Code Playgroud)

我在一个新创建的本地git仓库中.

当我编写PDF格式时,我得到了这个:

在此输入图像描述

所以你应该能够使用它来为它生成的git提交加水印.

或者,如果您善于向项目添加另一个包依赖项,则可以使用该git2r包:

---
output: pdf_document
---

```{r}
library(git2r)

repo <- repository(".")
print(head(repo))
```
Run Code Online (Sandbox Code Playgroud)

这使:

在此输入图像描述

  • 好吧,它给出了实际的`git`可执行文件的版本.不确定是多么有用. (2认同)

jen*_*yan 5

使用git2r软件包的建议非常好.使用更多功能,您可以隔离实际的SHA.如果感兴趣,您还可以重新调整用途,例如,"作者"字段以获取文档标题中的SHA.

这是R Markdown文档:

---
title: "Show Git version in R Code"
output: html_document
date: "`r format(Sys.time(), '%d %B, %Y')`"
author: "SHA: `r git2r::branch_target(git2r::head(git2r::repository(getwd())))`"
---

You could also put the SHA elsewhere, like in a concluding chunk along with session info.

```{r collapse = TRUE}
git2r::branch_target(git2r::head(git2r::repository(getwd())))
## ADD devtools::session_info() or sessionInfo() ??
```
Run Code Online (Sandbox Code Playgroud)

这使

在此输入图像描述