8

我在 RStudio 中使用 git 作为版本控制系统。我有几个不同版本的 R 脚本保存在 git 中。可以说,我已经删除了一段代码,但我现在决定将代码重新插入到我当前的 R 脚本中。我知道代码包含功能ddply。这是我目前的工作流程:

我在 RStudio 中打开终端,然后输入:

git grep ddply $(git rev-list --all)

这带来了数百行代码,例如:

2c975e1faee880545546646648f5be2b55f60fc757c29828f1f:reports/:data <- ddply(x, .(as.factor(y), summarise, mean(count))
2c975e1faee880545546646648f5be2b55f60fc757c29828f1f:reports/:data <- ddply(x, .(as.factor(y), summarise, mean(count))
2c975e1faee880545546646648f5be2b55f60fc757c29828f1f:reports/:data <- ddply(x, .(as.factor(y), summarise, mean(count))
2c975e1faee880545546646648f5be2b55f60fc757c29828f1f:reports/:data <- ddply(x, .(as.factor(y), summarise, mean(count))
2c975e1faee880545546646648f5be2b55f60fc757c29828f1f:reports/:data <- ddply(x, .(as.factor(y), summarise, mean(count))

我筛选了代码,最终找到了我正在寻找的位。我从终端复制相关的代码并将其粘贴回我的 R 脚本中。在代码可用之前,我需要删除这个位:2c975e1faee880545546646648f5be2b55f60fc757c29828f1f:reports/:

目前,这感觉像是重用旧的、版本控制的代码的一种相当缓慢和笨拙的方式,我最好还是使用 Rhistory。

有没有更快的方法从 git 中获取版本控制代码并返回到 RStudio 中的 R 脚本?

4

1 回答 1

2

Git 的 RStudio 界面非常基础,不提供直接的方法来处理除简单的历史之外的历史revert,也不提供除切换之外的分支。

如果您-G知道ddply存在于您现在想要重用的函数中,那么您搜索它的方法确实是您能做的最好的,或者可能是git log. 如果您知道其他任何事情(即:对时间段、文件或路径名或您所做工作的分支的某种意义),那么您可以通过使用某些标准过滤提交日志来使事情变得更简单。

找到提交后,您可以简单地使用交互式检查补丁块

git checkout -p

并像使用交互式提交一样使用它。这允许拆分块以获得您想要的部分。或者,如果您真的只想使用剪切和粘贴重新插入代码,那么git show&& 复制/粘贴。

不要忘记您并没有完全锁定在 RStudio 的界面中。有许多易于使用的 git 图形用户界面允许使用和搜索历史以绘制显式块,并且它们都不会干扰 Rstudio。它们都只处理代码,RStudio 界面将根据需要进行更新。

Git 接口

我个人偏爱终端、gitGUI 和 gitk 命令、TortoiseGit 和 Git 扩展。

于 2013-06-17T23:18:55.673 回答