version-control - 为什么单独的 Web 程序员应该从 Dropbox 切换到 "real"版本控制系统?

标签 version-control

我是一名相对缺乏经验(刚刚毕业)的网页设计师,经常编写 HTML 和 JavaScript,也处理大型 Photoshop 文件。由于 Dropbox 出色的版本历史记录功能,我早已习惯将处理的文件保存在 Dropbox 文件夹中。如果我犯了一个严重的错误,我总是可以恢复到任何文件的先前版本。

StackExchange 上的普遍观点似乎是 Dropbox 总比没有好得多,但 is still not nearly as good as a "real" version control system例如 Git。但在我看来,对于独立网页设计师来说,Dropbox 提供了源代码控制系统的最佳优点(永远不会丢失您的工作),而没有缺点(学习曲线、维护)。

fork 我的代码的能力似乎不足以让我证明其值(value)

  1. 学习新系统,并且
  2. 每次进行重大编辑时,都要“提交”更改。

如果我在这件事上与其他人合作,情况可能会改变,但只有我在这里。使用 Dropbox 毫不费力;除了保存工作内容之外,保证我的工作安全不需要额外的努力。

我想遵循行业最佳实践,如果我错过了某个重要功能,我想知道它是什么。版本控制系统为独立程序员提供了什么值(value)来抵消其相对于 Dropbox 增加的开销?

最佳答案

VCS 不仅仅是保证文件安全!

当您独自工作时,很容易在工作过程中做出改变。您拥有可管理的代码库,并且您只对代码的最新快照感兴趣。当您开发网站时尤其如此,用户始终会看到可用的最新版本。

这种心态可能是不健康的!想象一下,您向客户交付了某些版本(可能是二进制文件),但继续努力。当客户回来要求更改时,您如何轻松找出自客户版本以来进行了哪些更改?如果此后您进行了重大更改,而客户对此不感兴趣,该怎么办?在 Dropbox 中,您的历史记录只有 30 天的困惑。使用 git,诸如提交日志分支之类的东西可以让您轻松地处理和管理不同版本的代码,而无需复制文件夹、留下注释以及其他内容。你。

更重要的是 - 如果您开始与某人协作,您可能会度假回来,并且软件已进行了大量更改。您只需查看提交日志即可了解更改的内容。使用 dropbox,它只是文件更改,而不是像 VCS 那样对项目进行离散的可解释更新单元。

您可能还想开始开发大型新功能,或者只是在代码库中尝试一些东西。有了新分支,您就可以在该分支上进行破解,同时您(和其他人)继续在稳定分支上工作。您可能希望将稳定分支中所做的更改包含到您的功能分支中(合并),但您可以晚上 sleep ,因为您知道您的不完整功能分支不会干扰稳定分支上的工作。

要点并不是 VCS 具有比 Dropbox 更好的功能 - 而是您在编写代码时应该采用 VCS 背后的思维方式。您一次改进应用程序的一项功能,并且可以解释和证明每一项功能 - 而不是简单地进行更改,忘记如何和为什么。

当您开始为自己使用 VCS 时,您可能会发现您最终会忘记它,并在一天结束时提交,留下“添加了一些文件,进行了一些更改”作为提交消息。在这种情况下,VCS 并不比 Dropbox 更好。但如果你坚持良好的礼仪,经常使用简洁的提交消息进行提交,即使是一个只有一个主分支和版本标签的简单存储库,也会自动证明比 dropbox 好得多。随着您的 VCS 不断发展,您可能会开始使用其他功能,例如分支,并且您会想知道自己是如何使用 Dropbox 的。

有关良好 git 礼仪的示例,请查看 git flow branching model 。我个人认为将 git 与 Sourcetree 一起使用是一种很棒、简单的方法。 ,但是使用 git 的方法比这个宇宙中的原子还多 - 只需确保找到适合您的一种:-)

关于version-control - 为什么单独的 Web 程序员应该从 Dropbox 切换到 "real"版本控制系统?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25271724/

相关文章:

php - Wordpress 多开发人员设置

windows - Git:自动提交 Windows 文件夹的内容

version-control - 备份或复制 Azure 移动服务脚本?

ruby-on-rails - Git 仓库放在哪里

version-control - 源代码控制软件可以用于您的技术文档吗?

git - 使用 git fast-export 从给定的提交开始导出存储库

mysql - 在数据库中实现版本系统

android - 在 Android Repo 项目中切换 Git 分支

version-control - 与 Qooxdoo 和多个开发人员一起开发

android - 如何 fork 整个 Android 操作系统的代码?