Git 已成为版本控制的全球标准。 那么到底是什么?
Git 是分布式版本控制系统,这意味着项目的本地克隆是完整的版本控制存储库。 这些功能齐全的本地存储库使脱机或远程工作变得容易。 开发人员在本地提交工作,然后将存储库的副本与服务器上的副本同步。 此范例不同于集中式版本控制,客户端必须在创建新版本的代码之前将代码与服务器同步。
Git 的灵活性和受欢迎程度使其成为任何团队的绝佳选择。 许多开发人员和大学毕业生已经知道如何使用 Git。 Git 的用户社区创建了资源来训练开发人员,Git 的受欢迎程度使在需要时可以轻松获得帮助。 几乎每个开发环境都有 Git 支持和 Git 命令行工具在每个主要作系统上实现。
Git 基本知识
每次保存工作时,Git 都会创建提交。 提交是所有文件在特定时刻的状态快照。 如果文件未从一个提交更改为下一个提交,Git 将使用以前存储的文件。 此设计与那些存储文件初始版本,并随着时间推移记录文件变化的系统不同。
提交记录创建指向其他提交记录的链接,形成开发历史的图表。 可以将代码还原到以前的提交,检查文件如何从一个提交更改为下一个提交,以及查看更改的位置和时间等信息。 提交是通过内容的唯一加密哈希来在 Git 中标识的。 由于所有内容都经过哈希处理,因此在未检测到 Git 的情况下无法进行更改、丢失信息或损坏文件。
分支
每个开发人员将更改保存到自己的本地代码存储库。 因此,根据同一提交,可能会进行许多不同的更改。 Git 提供了用于隔离更改以及稍后将它们合并回一起的工具。 分支是用于工作的轻型指针,用于管理此分离。 在分支中创建的工作完成后,可以将其合并回团队的主分支(或主干分支)。
文件和提交
Git 中的文件处于以下三种状态之一:已修改、暂存或提交。 首次修改文件时,更改仅存在于工作目录中。 它们尚未成为提交或开发历史的一部分。 开发人员必须 暂存 包含在提交中的已更改文件。 暂存区包含所有要纳入下一个提交的改动。 开发人员对暂存文件感到满意后,文件将打包为 提交 ,其中包含描述更改内容的消息。 此提交将成为开发历史记录的一部分。
通过暂存,开发人员可以选择要在提交中保存的文件更改,以便将大型更改分解为一系列较小的提交。 通过减少提交范围,可以更轻松地查看提交历史记录以查找特定文件更改。
Git 的优点
Git 的优点很多。
同时开发
每个人都有自己的本地代码副本,并且可以在自己的分支上同时工作。 Git 可以脱机运行,因为几乎所有操作都是本地完成的。
更快的发布
分支允许同时进行灵活开发。 主分支包含供你发布的稳定高质量代码。 功能分支包含正在进行的工作,这些工作在完成后合并到主分支中。 通过将发布分支与正在进行的开发分开,可以更轻松地管理稳定的代码并更快地交付更新。
内置集成
由于它的受欢迎程度,Git 集成到大多数工具和产品中。 每个主要 IDE 都有内置的 Git 支持,许多工具都支持持续集成、持续部署、自动测试、工作项跟踪、指标和报告功能与 Git 集成。 此集成简化了日常工作流。
强大的社区支持
Git 是开源的,已成为版本控制的事实标准。 团队可以利用大量可用的工具和资源。 与其他版本控制系统相比,对 Git 的社区支持量使得在需要时可以轻松获得帮助。
Git 与任何团队合作
通过鼓励协作、强制实施策略、自动化流程以及提高工作的可见性和可追溯性,将 Git 与源代码管理工具结合使用可以提高团队的工作效率。 团队可以确定用于版本控制、工作项跟踪以及持续集成和部署的各个工具。 或者,他们可以选择一个解决方案,例如 GitHub 或 Azure DevOps ,该解决方案支持所有这些任务。
拉取请求
在将代码更改合并到主分支之前,请使用 拉取请求 与团队讨论代码更改。 拉取请求中的讨论对于确保代码质量并提高团队的知识是无价的。 GitHub 和 Azure DevOps 等平台提供了丰富的拉取请求体验,开发人员可以在其中浏览文件更改、留下批注、检查提交、查看生成和投票以批准代码。
分支策略
Teams 可以配置 GitHub 和 Azure DevOps,以在整个团队中强制实施一致的工作流和流程。 他们可以设置 分支策略 ,以确保拉取请求满足完成前的要求。 分支策略通过防止直接推送、要求审阅者审核以及确保构建干净,来保护重要的分支。