分布式开发 在 SVN 中,每个开发人员都会获得一个指向单个中央存储库的工作副本。但是,Git 是一个分布式版本控制系统。不是工作副本,而是每个开发人员都有自己的本地存储库,里面有完整的提交历史记录。
拥有完整的本地历史记录可以让 Git 变得更快,因为这意味着您不需要网络连接即可创建提交、检查文件的先前版本或在提交之间执行比对。
分布式开发还可以更轻松地扩展您的工程团队。如果有人破坏了 SVN 中的生产分支,则其他开发人员在修复之前无法添加变更。对于 Git 来说,这种障碍是不存在的。每个人都可以继续在自己的本地存储库中作业。
而且,与功能分支类似,分布式开发创造了更可靠的环境。即使开发者删除了自己的存储库,他们也可以简单地克隆别人的存储库然后重新开始。
拉取请求 Bitbucket 等许多源代码管理工具都通过拉取请求增强了 Git 的核心功能。拉取请求是一种要求其他开发人员将您的一个分支合并到他们存储库中的方式。这不仅使项目主管更容易跟踪变更,还可以让开发人员在将其与代码库其余部分集成之前围绕他们的工作展开讨论。
由于它们本质上是附加到功能分支的评论话题,因此拉取请求的用途非常广泛。当开发人员遇到棘手问题时,他们可以提出拉取请求,向团队其他成员寻求帮助。或者,初级开发人员可以通过将拉取请求视为正式的代码审查来确信他们不会破坏整个项目。
社区 在许多圈子里,Git 已成为新项目的预期版本控制系统。如果您的团队正在使用 Git,您很可能不必对新员工进行工作流程培训,因为他们已经熟悉了分布式开发。
此外,Git 在开源项目中非常受欢迎。这意味着可以轻松利用第三方库并鼓励其他人克隆您自己的开源代码。
更快的发布周期 功能分支、分布式开发、拉取请求和稳定社区的最终结果是更快的发布周期。这些功能促进了敏捷的工作流程,鼓励开发人员更频繁地共享较小的变更。反过来,与集中式版本控制系统常见的单一版本相比,变更可以更快地推送到部署管道中。
正如您所预料的那样,Git 在持续集成和持续交付环境中运行得很好。Git 钩子允许您在存储库内发生某些事件时运行脚本,这使您可以自动部署到您想要的内容。您甚至可以从特定分支构建代码或将代码部署到不同的服务器。
例如,您可能需要配置 Git,以便在有人将拉取请求合并到测试服务器时,将最新的提交从开发分支部署到测试服务器。将这种构建自动化与同行评审相结合,意味着在代码从开发到暂存再到生产的过程中,您可以极大地放心。