svn - 版本控制让我难过

标签 svn git version-control

我已经开发了几年的网站,但一直没有时间和精力去学习版本控制。现在,当我开始我开发过的一个更大的项目时,我正在考虑最终尝试一下,并以此为契机学习版本控制。

我已经阅读了一些简短的描述,但我仍然难以理解集中式版本控制与分散式版本控制的概念。有什么区别?优点/缺点?

我在 OS X 上开发网站。在过去的几年里,我使用了一个名为 Coda 的程序。编辑我的 HTML/PHP/CSS/JS 并使用简单的 Cmmd + S 轻松将其上传到我的服务器。我一直保留一个用于开发的“dev”目录和一个用于生产的“live”目录。推出修复程序和新功能一直与使用我在“开发”中的最新更改更新“实时”目录一样简单。不过,对于这个项目,我希望为网站的特定方面聘请一些外部设计师/开发人员,我认为这是 SCM 的用武之地。此外,我第一次需要该网站的测试版用户测试新功能并提供反馈。

据我所知,每次我想进行更改时,我都必须 fork (?)我自己的工作副本。我没有将工作计算机设置为开发服务器(没有 MySQL、PHP)。我将如何使用远程服务器作为开发服务器来使用版本控制?我的每个开发人员都需要工作目录吗?如何将版本控制与 MySql 或其他数据库结合使用?

此外,我在共享托管服务器上,所以我将使用托管版本控制系统,如 BeanstalkGithub .

我正在寻找完整的工作流程,好像是这样。你是做什么的?

我知道这是一个很大的问题,我非常感谢大家的意见。

最佳答案

没有你想象的那么糟糕。

您会爱上它,因为您永远不会丢失代码,您将能够跟踪历史记录,并且能够回滚到您喜欢的任何版本。

each time I want to make a change, I'll have to fork (?) my own working copy

这不是真的。您可以随时提交对工作副本的更改,直到您准备好发布它。您将标记该版本(例如,“maj.min.svn.build”,其中 major 是主要版本号,min 是次要版本号,svn 是 subversion 修订号,build 是自动构建号)并愉快地继续为下一个版本修改主干。

如果您正在进行并行开发,您只需要 fork (“创建一个分支”)。

尝试颠覆。它非常好,即使 Linus Torvalds 讨厌它。 《SVN红 bean 》这本书是你应该谷歌和阅读的。或关于版本控制的 Pragmatic Programmer 书籍。

我在我的家用机器上运行 CollabNet Subversion 并定期检查所有内容。这是练习的好方法。我的东西很安全,这是一个额外的好处。

关于svn - 版本控制让我难过,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1469198/

相关文章:

linux - svn 导出到结帐

windows - 没有管理员权限的Windows上的SVN客户端

svn - 恢复由文件系统快照反转的 Subversion 存储库

database - visualsvn 的 trac "OperationalError: attempt to write a readonly database"问题

git - 使用 git-flow 功能分支和 Gerrit 的工作流

Git 编辑 "Lost in Space"

visual-studio - 带有 Visual Studio 集成的源代码管理(最好是免费的)

git - git commit --amend 是否包含上次提交中的文件?

linux - 如何使用git命名空间 stash 分支

git - 如何在不同的git仓库之间复制带有历史记录的文件?