代码之家  ›  专栏  ›  技术社区  ›  Joyce Babu

php开发的版本控制

  •  11
  • Joyce Babu  · 技术社区  · 16 年前

    我听说了很多关于使用版本控制系统的好处,我想试试。在过去的两年里,我一直在用php做自由网页开发,两个月前,我又雇了两个程序员来帮我。我很快会再雇一个人。我们有4个网站,都是我自己的,我们中的一个一直在编辑。我自学php,从未在其他公司工作过。因此,我对版本控制、单元测试和所有方面都是新手。

    目前,我们的工作站上有开发服务器。当我们编辑一个站点的特定部分时,我们将该特定部分的代码(比如/news/or/movies/or/wallpapers/)从生产服务器下载到开发服务器,在本地进行更改并上传到生产服务器(没有代码检查/测试)。因此,我们的开发服务器总是与prod服务器过期。有时,当我们中的一个忘记从prod下载最新的副本并覆盖最后的更改时,这也会产生问题。我知道这是非常愚蠢的,但目前我们的prod服务器是唯一一个拥有所有更新和最新更改的副本。

    有谁能给我推荐哪一个版本控制系统最好?我对分布式版本控制更感兴趣,因为我们没有所有代码的中心备份。我读到了mercurial和git,发现mercurial被mozilla、sun、symbian等几个大型开源项目使用,所以你认为哪一个更适合我?不仅是版本控制,如果有任何其他包可以用来改进我当前的设置,请也提及:)

    6 回复  |  直到 9 年前
        1
  •  3
  •   Zack    16 年前

    听起来git可以很好地实现你的目标。由于它是分布式的,因此非常适合在本地工作,因为您可以在不连接中央服务器的情况下执行大多数操作(提交、还原、差异、修补程序)。您还可以避免这样一个难看的时刻:有人在生产中推送新代码,而其他人正在处理它,然后有一个复杂的任务将这两个版本的代码合并在一起(git提供了一个有用的工具,称为rebase)。

    您注意到有一些大型项目使用hg(mercurial),但也有一些相当大的项目使用git,比如linux内核、x.org、android和debian。

    我把git用于我所有的网站:它速度快,效率高,使用方便。


    编辑:如果你想开始使用git,我建议你在直接进入之前先阅读一下。从错误的角度出发以后可能会产生一些可怕的影响。如果遵循敏捷工作流,您可能需要检查 this 出来。 Here's 一个网站,我学到了我的大部分git的诀窍。

        2
  •  1
  •   Kevin    16 年前

    你可以使用svn,git,mercurial。

    最大的挑战是让每个人在使用版本控制时都遵守纪律,而不是变得懒惰。

        3
  •  1
  •   Benson    16 年前

    版本控制是一个难以置信的工具,即使你是单独工作,当你与其他人一起工作时,它也是不可或缺的。我建议使用git。它非常快,有一套非常好的可用工具,当然 github.com . Mercurial基本上和Git一样好,但它运行得慢一些,而且没有GitHub。

    为什么要使用git,请阅读 http://whygitisbetterthanx.com/

    这里有一个关于git入门的漂亮教程: http://www-cs-students.stanford.edu/~blynn/gitmagic/index.html

        4
  •  0
  •   CMircea    16 年前

    绝对是多变的。尽管您可以使用git或svn,但mercurial更好,原因有二:

    1. vs git:与windows的良好集成。
    2. vs svn:它是分布式的。

    如果您不想自己运行一个Mercurial服务器(无论如何这很容易),那么可以使用许多服务。kiln+fogbugz是一个很好的组合。还有codebasehq(也支持git和svn)、bitbucket等等。

    在你开始之前,我强烈建议你至少读一读 Joel Spolsky's tutorial ,但我强烈建议您也阅读 Mercurial: The Definitive Guide .

        5
  •  0
  •   Vinod Mohan    16 年前

    很抱歉,我无意发动一场DVCS圣战。我要试试吉特。

        6
  •  0
  •   ndp    16 年前

    是的,版本控制会有帮助。首先,我看到两个重要的问题:

    • 托管还是自行管理? 您是希望自己在服务器上托管此服务器,还是希望由服务为您处理它?这两种方法都有原因,但如果您不想管理服务器,请查找托管选项。

    • Svn或Git 还有其他的,但这些是顶级的开源竞争者。

    利弊(我的意见):

    视觉神经网络 :很好的教程,而且很容易跟上进度。训练要求很低(我做了一点)。SVN与一个位于同一地点的团队、许多项目等合作得非常好。它拥有数量有限的分支(您可能不需要任何分支),非常可靠。与其他工具有很多集成。

    吉特 :与SVN相比,入门可能更为艰难。有些文档是好的,但是很多都是假设对内部有一个相当透彻的理解。一旦你掌握了它的诀窍,它就有了很大的灵活性,但我看到几乎所有从它开始的人在开始的时候都会跌跌撞撞。即使在使用了几个月之后,人们仍在争论使用的最佳模式。对于单人项目(您希望跟踪历史记录的地方)和Github这样的分布式项目来说,这真的很好。我使用git,即使是在同一地点的小团队中,因为我喜欢速度和灵活性。

    不过,考虑到你对团队的评价,我可能会建议你试试SVN。会有更好的资源来帮助你,你也不会因此而沮丧。

    希望这有帮助。