Git 的正确使用姿势与最佳实践(一) | 青训营笔记

68 阅读2分钟

为什么要学习Git?

  • 协同工作

    • 业界绝大多数公司都是基于 Git 进行代码管理,因此 Git 是一个程序员的必备技能
  • 开源社区

    • 目前绝大多数的开源项目都是基于 Git 维护的,参与这些项目的开发都需要使用 Git。

Git:Git是一个免费和开源分布式版本控制系统
版本控制:一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统。
为什么需要版本控制:更好的关注变更,了解到每个版本的改动是什么,方便对改动的代码进行检查,预防事故发生;也能够随时切换到不同的版本,回滚误删误改的问题代码;

版本控制系统

版本控制类型代表性工具解决的问题
本地版本控制RCS本地代码的版本控制
集中式版本控制SVN提供一个远端服务器来维护代码版本,本地不保存代码版本,解决多人协作问题。
分布式版本控制Git每个仓库都能记录版本历史,解决只有一个服务器保存版本的问题
  • 本地版本控制的缺点

    • RCS 这种本地版本控制存在最致命的缺陷就是只能在本地使用,无法进行团队协作,因此使用的场景非常有限,因此衍生出了集中式版本控制
  • 集中版本控制

    • 优点
      • 学习简单,更容易操作
      • 支持二进制文件,对大文件支持更友好
    • 缺点
      • 本地不存储版本管理的概念,所有提交都只能联上服务器后才可以提交
      • 分支上的支持不够好,对于大型项目团队合作比较困难
      • 用户本地不保存所有版本的代码,如果服务端故障容易导致历史版本的丢失。
  • 分布式版本控制

    • 优点
      • 分布式开发,每个库都是完整的提交历史,支持本地提交,强调个体
      • 分支管理功能强大,方便团队合作,多人协同开发
      • 校验和机制保证完整性,一般只添加数据,很少执行删除操作,不容易导致代码丢失
    • 缺点
      • 相对 SVN 更复杂,学习成本更高
      • 对于大文件的支持不是特别好 (git-lfs工具可以弥补这个功能)

个人总结

这节课学习了为什么要使用Git,和其它版本控制系统的对比,Git的优缺点(其实这节课不看也可以),下节课开始学习Git的命令