我尊重的许多数据分析师都使用版本控制.例如:
但是,我正在评估采用像git这样的版本控制系统是否值得.
简要概述: 我是一名社会科学家,他使用R来分析研究出版物的数据.我目前不生产R包.我的项目R代码通常包括几千行代码,用于数据输入,清理,操作,分析和输出生成.出版物通常使用LaTeX编写.
关于版本控制,我已经阅读了许多好处,但它们似乎与独立数据分析师的相关性较低.
采用版本控制还涉及几个潜在成本:
但是,我仍然觉得我错过了什么.关于版本控制的一般指南似乎比数据分析师更多地针对计算机科学家.
因此,特别是在类似于上面列出的情况下的数据分析师:
考虑到以下要求,在GitHub上创建git存储库的本地备份的最佳方法是什么?:
本地备份应该是一个简单的回购.
备份应包括所有分支.
应该很容易(逐步)更新备份.
基本上,我想要一个完美的镜子,可以轻松更新.就这样,命令
git clone --mirror git://github.com/...
Run Code Online (Sandbox Code Playgroud)
想到了,但据我所知,这不允许轻松更新(我必须删除并重新创建我的本地备份).另外,git clone的镜像选项似乎是最近的,我没有在我正在研究的一些系统上(它有稍微旧版本的git运行).
针对此类问题,您推荐的解决方案是什么?
我在不同的PC上有两个git存储库.我每个人都有一些当地的分支机构.我不想将这些分支发送到远程服务器,只需将它们保存在本地.如何在不使用网络的情况下进行同步?我可以在一台PC上压缩存储库并转移到另一台PC吗?这样安全吗?也许我可以从每个分支导出某种最新的变化?
说我的合作黑客,我发现自己在一个荒岛上.通常我们推送并拉到github以便彼此同步.当我们与外界无关时,您会如何建议我们这样做?
(用户@bee和我实际上有这个问题,因为我输入了这个,但显然不是我发送的.在我们的例子中我们都有Mac笔记本电脑 - OSX Snow Leopard - 但我认为通常更好地对待这个问题.)
我的工作场所使用Subversion进行源代码控制,所以我一直在使用git-svn来获取我自己的分支的优点,我可以随意提交,而不需要触及主回购等.
由于我的git svn checkout是本地的,我已将其克隆到网络共享以充当备份.我的想法是,如果我的桌面进行转储,我至少会在网络共享上拥有回购,以获得我尚未有机会提交的更改.
我的工作流程是从桌面工作,进行更改,提交等.在一天结束时,我想用我当前的所有更改来更新网络共享上的repo.我在网络共享上设置了repo git clone repo_on_my_desktop,然后使用更新网络共享上的repo git pull origin master.我遇到的问题是当我在git rebase提交到主svn存储库之前使用do a 来压缩多次提交时.当我这样做时,当我尝试在晚上备份时,我在网络共享上的repo上发生合并冲突.
有没有办法简单地与桌面上的存储库完全同步,而不是git clone每晚都做新的?
在快速重新安装之前,我正在刻录DVD上的东西.从来没有用git作为最近的用户.所以我只是和你们一起检查.如果我理解正确的话,我只需要备份我的项目目录project_name(里面有.git)和它一起查看隐藏文件,当我将它复制到"新"机器上,并再次安装git时,我恢复如下没啥事儿 ?正确吗?
我似乎经常遇到这样的情况,我想快速给某人克隆来自我的笔记本电脑的git repo的方法,并且我想在没有运行SSH守护程序,git守护程序或任何其他类型的情况下执行此功能.需要配置(甚至访问控制)的服务.
到目前为止,我提出的最简单的方法是为Ruby 安装adsf命令行web服务器gem,确保运行git update-server-info然后只adsf在我想要共享的目录中运行.例如,如果我在repo的根目录中运行它,那么我会告诉另一方克隆http://<my_hostname_or_ip>:3000/.git,或者服务器启动的任何端口.
这种方法效果很好,但确实存在由并发访问引起的问题以及安装Ruby和特定gem的需要.
你使用或知道哪些其他工具或黑客执行类似的功能?
编辑:澄清一下,我正在寻找一个解决方案hg serve:ad hoc,快速和无痛,需要最少的设置,没有持久的服务.
我经常将笔记本电脑备份到外置硬盘.是否将git repos用于足够好的备份解决方案,或者这个方法有问题吗?