我正在使用git作为RStudio中的版本控制系统。我有几个不同版本的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脚本中?
答案 0 :(得分:2)
Git的RStudio接口是非常基本的,并不提供直接使用简单revert
之外的历史记录的方法,也不提供切换之外的分支。
如果 all 你知道ddply存在于你现在想要重用的函数中那么你的搜索方法真的是你能做的最好的,或者-G
grep git log
的标志。如果您知道其他任何事情(例如:某些时间段,文件或路径名称或您完成工作的分支),那么您可以通过使用某些条件过滤提交日志来简化操作。
一旦找到了提交,您就可以使用
以交互方式检查补丁块 git checkout -p
并像使用交互式提交一样使用它。这允许拆分块以获得您想要的部分。或者,如果您真的只想使用剪切和粘贴重新插入代码,那么git show
&amp;&amp;复制/粘贴。
不要忘记您没有专门锁定RStudio的界面。 git有很多易于使用的GUI,允许使用和搜索历史记录以显示明确的块,并且它们都不会干扰Rstudio。他们都只是处理代码,RStudio接口将根据需要进行更新。
我个人偏爱终端,gitGUI&amp; gitk命令,TortoiseGit和Git Extensions。