Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在R代码中显示Git版本_R_Git_Rstudio_Knitr - Fatal编程技术网

在R代码中显示Git版本

在R代码中显示Git版本,r,git,rstudio,knitr,R,Git,Rstudio,Knitr,我使用Git作为版本控制(目前是集中式工作流,但我想转到功能分支或gitflow工作流)。我使用RStudio/Knitr来编译PDF文档,我想知道如何在PDF中自动包含当前的Git版本-如果可以的话?这样,当有人带着我给他们的文档回到我身边时,我知道如何回到代码中的那个点。任何建议都将不胜感激,谢谢-玛丽 编辑:关键字是我的想法,尽管根据这篇文章(gelato.unsw.edu.au/archives/git/0610/28891.html)不推荐使用。是否有关于帮助者脚本的建议用户14203

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


编辑:关键字是我的想法,尽管根据这篇文章(gelato.unsw.edu.au/archives/git/0610/28891.html)不推荐使用。是否有关于帮助者脚本的建议用户1420372刚才这样做只是为了演示一个简单的例子。这是“Wanter Nuata”的主意

这是一个小小的knitr博士:

---
output: pdf_document
---

```{r}
print(system("git rev-parse --short HEAD", intern = TRUE))
```
我在一个新创建的本地git回购中拥有

当我编织到PDF时,我得到以下信息:

因此,您应该能够使用它为生成它的git提交添加水印

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

---
output: pdf_document
---

```{r}
library(git2r)

repo <- repository(".")
print(head(repo))
```
---
输出:pdf\U文件
---
```{r}
图书馆(git2r)

repo使用git2r包的建议真的很好。通过更多的函数,您可以隔离实际的SHA。您还可以重新调整用途,例如,作者字段,以获取文档标题中的SHA(如果感兴趣)

以下是R降价文档:

---
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() ??
```


我对R不熟悉,但是
git rev parse--short HEAD
将为您提供上次提交的缩短SHA1哈希,然后您可以查看它。我相信从R做
system(“git rev parse--short HEAD”,intern=TRUE)
应该可以。@WanderNauta你应该回答这个问题。@hrbrmstr我没有R/RStudio/Knitr,所以我没有办法测试我的离谱说法-如果你做了,而且确实有效,请随意添加它作为答案。包括
系统怎么样(“git——版本”)
?好的,这给出了实际的
git
可执行文件的版本。不确定这有多大帮助。还可以看看是否需要它来处理标签或分离的磁头。当工作目录位于
my_repo/my_subdir
而不是
my_repo
时,有没有办法让这个答案起作用?现在是
r git2r::branch\u target>(git2r::repository\u head(getwd())
因为
head.git\u repository()