Git 我应该如何使用版本控制系统?
好吧,这个问题的不同版本到处都是,但是我搜索得越多,它就越让人困惑 所以。我是一个内容管理系统的唯一开发人员,该系统在我的远程Linux服务器场上运行。它有大约700MB的PHP文件保存在/Atlas/Core层次结构中,700MB的站点文件保存在/Atlas/Sites中——所有媒体和临时数据都保存在这些位置之外,因此出于所有目的,这两个位置构成了我系统的核心 站点目录对于这个特定位置是唯一的,并且不需要与核心目录同时进行版本控制——基本上,据我所知——将它们作为两个存储库是正确的方法 我所有的开发都是在我的Mac电脑上进行的(工作Mac电脑、笔记本电脑、家用Mac电脑等),因为我的CMS配置为在远程Linux系统上运行,所以在我的工作环境上设置相同的Apache/MySQL环境并不是一件优先的事——这可能是可以做到的,但我不知道这是否值得 那么,为什么要进行版本控制呢?好的,一个是能够返回到早期版本,第二个是何时/是否会有更多的开发人员参与 但是我该怎么做呢?我会在服务器X上有一个存储库,而我的实时生产服务器是服务器Y,然后在服务器Z上设置一个“测试”环境吗?所以改变是在Z上,推到X,然后拉到Y 然后我从任何Mac连接到Z,进行更改,并在web浏览器中检查它们,然后将它们两步推送到生产服务器?这对我来说显然是非常麻烦的,但如果没有其他办法的话Git 我应该如何使用版本控制系统?,git,svn,versioning,Git,Svn,Versioning,好吧,这个问题的不同版本到处都是,但是我搜索得越多,它就越让人困惑 所以。我是一个内容管理系统的唯一开发人员,该系统在我的远程Linux服务器场上运行。它有大约700MB的PHP文件保存在/Atlas/Core层次结构中,700MB的站点文件保存在/Atlas/Sites中——所有媒体和临时数据都保存在这些位置之外,因此出于所有目的,这两个位置构成了我系统的核心 站点目录对于这个特定位置是唯一的,并且不需要与核心目录同时进行版本控制——基本上,据我所知——将它们作为两个存储库是正确的方法 我所有
你对如何处理这个问题有什么想法吗?我做错了什么?我应该使用什么版本控制系统?我认为工作环境上的Apache/MySQL是最好的选择。您可以有更简单的开发过程 关于版本控制,我只怀疑它的大小。700Mb是非常大的代码库。Linux内核只有大约100Mb,是几千人几年前写的。也许你有很多二进制文件
无论如何,我建议首先尝试git,但请记住,它在真正的源代码上效果最好,而不是在二进制/自动生成的文件上。如果你能排除他们,那就太好了。如果您有这么好的代码库,我还建议您将其拆分为几个小的存储库。首先,700MB的源代码有一些(非常)错误。我假设这并不都是真实的源代码,但其中有一些数据库转储和图像 用git对整个过程进行版本控制相当容易。只要您是唯一的开发人员,代码就不需要中央服务器。只需在开发人员系统上设置git并开始版本控制。如果你愿意,你可以停在那里。坚持使用旧的部署过程并完成它 下一步是将中央回购添加到该设置中。我个人建议以7美元/月的价格获得私人github回购。这样,您就不必担心安装或备份,向项目中添加新的开发人员非常简单。此外,您还可以查看代码并跟踪问题。当你有一个中央回购,你只是推你的变化有一段时间。完成。拥有中央回购(只要您是唯一的开发人员)的最大优势在于,您的代码及其所有历史记录都备份在远程位置 如果愿意,还可以使用git进行部署。我建议这样做。关于如何做到这一点,有很多教程。我更喜欢“推送和自动签出”设置。然后您的工作流程如下:开发、提交、推送到Web服务器。无论你是否有中央回购,都没有任何区别
我推荐的版本控制系统绝对是git。或者任何其他分散的问题,但我只有使用git的经验。好吧,这里没有什么问题,所以我将尝试解决所有问题 问题1。那么,为什么要进行版本控制呢 你给出的两个理由已经足够了,但也是
- 有备份
- 要将代码库的某些快照标记为“特殊”-一个版本,一个 里程碑
- 尝试一些可能需要很长时间并且可能会 报废。您可以将其提交到分支,如果它不起作用,您的 产品代码未被触及
是否有一个不使用版本控制的好理由?
我唯一能想到的是,这在您的工作流程中是额外的几个步骤,但从长远来看,这会带来100倍的回报,因此您可以而且应该接受额外的步骤
我建议将git与在线存储库服务(如或)结合使用。我更喜欢BitBucket——你需要多少免费私人回购(在发布时)
问题2。但是我该怎么做呢?
我会在服务器X上有一个存储库,而我的实时生产服务器是服务器Y,然后在服务器Z上设置一个“测试”环境吗?所以改变是在Z上,推到X,然后拉到Y
你所描述的听起来不错,所以只要:
- 读这本书
- 在服务器上安装git
- 将BitBucket或GitHub用作服务器X