|
|
1
82
我觉得你的问题的答案是一个响亮的是-用版本控制系统管理文件的好处远远超过了实现这样一个系统的成本。 我将尽量详细回答你提出的一些问题:
是的,我也是。但是,对于依赖通用备份系统充分跟踪与您的工作相关的重要和活动文件是否合适,还有一些问题需要考虑。在表演方面:
最重要的是:
例如,拥有一台Mac电脑,并使用时间机器备份到我电脑中的另一个硬盘驱动器。时间机器非常适合恢复奇数文件,或者在出现问题时恢复我的系统。然而,我的重要工作并不值得信任:
有了Git这样的版本控制系统,我可以启动特定文件的备份,而无需再像在文本编辑器中请求保存那样费劲,而且该文件是即时成像和存储的。此外,git是分布式的,因此我工作的每台计算机都有一个存储库的完整副本。 这相当于将我的工作镜像到四台不同的计算机上——除了上帝的旨意,没有什么能破坏我的文件和数据,在这一点上,我可能不会太在意。
作为一个独奏者,我也不太喜欢叉子。然而,我通过选择倒带节省的时间已经一次性地偿还了我在学习版本控制系统方面的投资很多很多次。你说你从来没有觉得有必要这样做,但在你当前的备份系统下,倒带任何文件真的是一个无痛,可行的选择吗? 有时候45分钟前,一到两天前的报告看起来更好。
是的,但是你会学到一个工具,如果你最终在一个项目上与其他人合作的话,这个工具可能是必不可少的。
不要太担心这个。版本控制系统就像编程语言一样——它们有几个关键概念需要学习,其余的只是语法上的甜点。基本上,你所学的第一个版本控制系统需要投入最多的时间-切换到另一个版本只需要学习新系统如何表达关键概念。 选择一个流行的系统,并去它!
你有一个文件夹吗,比如说
对!它给你一个巨大的撤销按钮,让你可以轻松地把工作从一台机器转移到另一台机器上,而不必担心丢失USB驱动器之类的事情。
我能想到的唯一的缺点是文件大小略有增加——但是现代版本控制系统在压缩和选择性保存方面可以做得非常出色,所以这几乎是一个未知数。
将生成数据或报告的文件置于版本控制之下,要有选择性。如果你用的是
至于学习版本控制系统,我强烈推荐git和 this guide 对它。 这些网站还提供了一些与使用git执行特定操作相关的好提示和技巧: |
|
|
2
23
我在一家分析商店工作了九年,并向该商店介绍了我们的分析项目的版本控制思想。显然,我非常相信版本控制。不过,我想提出以下几点。
|
|
|
3
17
我用R和乳胶做经济学研究,我总是把我的工作置于版本控制之下。就像是无限的撤销。试试bazaar吧,它是最简单的学习和使用工具之一,如果你在windows上,它有一个图形用户界面(tortoisebzr)。 是的,与其他人一起工作时,版本控制还有其他好处,但即使是在单独的项目中,它也很有意义。 |
|
|
4
17
为了完整起见,我想我会提供一个关于我采用版本控制的更新。 我发现solo数据分析项目的版本控制非常有用。 我已经采用git作为我的主要版本控制工具。我第一次在eclipse中使用egit启动statet。现在我通常只使用命令行界面,尽管与rstudio的集成非常好。 我在博客上写了我的经历 getting set up with version control 从数据分析项目的角度。 如文章所述,我发现采用版本控制在我如何看待数据分析项目方面有许多次要的好处,包括澄清:
|
|
|
5
9
现在,您可能认为您的工作是开发代码来完成您希望它做的事情。采用修订控制系统后,您会认为您的工作是在存储库中写下您的遗留内容,并对其进行出色的增量更改。感觉好多了。 |
|
|
6
7
我还是会推荐像你这样的独奏版本控制,因为有一个安全网来捕捉错误是一件很好的事情。 我曾做过SOLO Java开发人员,我仍然使用源代码管理。如果我不停地检查东西,如果出了问题,我损失的工作不会超过一个小时。我可以不用担心地进行实验和重构,因为如果出错,我总是可以回滚到我的上一个工作版本。 如果你是这样的话,我建议你使用源代码管理。这不难学。 |
|
|
7
7
你必须使用一个版本控制软件,否则你的分析不会完全重现。 如果你想在某个地方发布你的结果,你应该总是能够在你生成脚本的那一刻重建脚本的状态。假设某个评审员在你的一个脚本中发现了一个错误:你如何知道哪些结果是有效的,哪些不是? 从这个意义上说,备份系统是不够的,因为它可能每天只完成一次,而且它不会对不同的备份应用标签,所以您不知道哪些版本对应于哪些结果。学习VCS比你想象的要简单,如果学习如何添加文件和如何提交更改已经足够了。 |
|
|
8
6
大是的。
优点:你可以追踪你以前做过的事情。特别适用于乳胶,因为你可能需要一个旧的段落,被你删除!当你的电脑死机或者你在新的电脑上工作时,你的数据会随时返回。 缺点:你需要做一些设置。
开始用吧。我在windows上使用tortoise svn作为客户端工具,我的部门有一个svn服务器,我把我所有的代码和数据(是的,你也把你的数据放在那里!)那里。 |
|
|
9
6
先退一步,学习编写r包的优势!你说你有几千行代码的项目,但是这些项目的结构和文档不像包代码那样?遵循软件包理念,包括每个功能的文档、许多常见的难以捕捉的错误的测试、编写自己的测试套件的工具等等,都能获得巨大的成功。 如果你没有纪律来制作一个包,那么我不确定你是否有纪律来做适当的修订控制。 |
|
|
10
5
我同意上面的观点,并说,是的,版本控制是有用的。 优势;
在工具集方面,我使用 Git 连同 StatEt 和 Eclipse 虽然您当然不必使用eclipse,但它工作得很好。有几个 Git plugins for Eclipse ,但我通常使用命令行选项。 |
|
|
11
4
solo开发(任何类型)的版本控制非常有趣:
如果您没有看到自己在执行这两个基本版本控制功能之一,那么您可能只需要一个简单的备份工具。
|
|
|
12
4
我也做单独的脚本工作,我发现它使事情更简单,而不是使它们更复杂。备份集成到编码工作流中,不需要单独的一组文件系统过程。学习任何版本控制系统的基础知识所需的时间肯定是值得花费的。 |
|
|
13
4
Dropbox有一个“ppor-man”版本控制,它可以让你在不费吹灰之力的情况下完成一部分工作,并带来很多额外的好处。 |
|
|
Hard_Course · 用另一列中的值替换行的最后一个非NA条目 8 月前 |
|
Mark R · 使用geom_sf()删除地球仪上不需要的网格线 8 月前 |
|
|
Joe · 根据对工作日和本周早些时候的日期的了解,找到一个日期 8 月前 |
|
Ben · 统计向量中的单词在字符串中出现的频率 8 月前 |
|
|
TheCodeNovice · R中符号格式的尾随零和其他问题[重复] 8 月前 |
|
dez93_2000 · 在R管道子功能中引用管道对象的当前状态 8 月前 |
|
|
Mankka · 如何在Ggplot2中绘制均匀的径向图 8 月前 |