Git 的正确使用姿势与最佳实践:团队协作和版本控制的最佳实践;| 青训营;

55 阅读3分钟

写在开头

hayasaka.png


01.Git 是什么

1.1 版本控制

版本控制是什么? 一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统

image.png

1.1.1 本地版本控制

  • 最初的方式: 通过本地复制文件夹,来完成版本控制,一般可以通过不同的文件名来区分版本

  • 解决方案: 开发了一些本地的版本控制软件,其中最流行的是 RCS

  • 基本原理 本地保存所有变更的补丁集,可以理解成就是所有的 Diff,通过这些补丁,我们可以计算出每个版本的实际的文件内容,全都存放在本地.

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

1.1.2 集中版本控制

  • 代表性工具:SVN
  • 基本原理:
  1. 提供一个远端服务来保存文件,所有用户的提交都提交到该服务器中
  2. 增量保存每次提交的 Diff,如果提交的增量中和远端现存的文件存在冲突,则需要本地提前解决冲突

eg: 如果A,B都提交修改,那么以谁的修改为准需要进行判断

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

1.1.3 分布式版本控制

  • 代表性工具:Git
  • 基本原理:
  1. 每个库都存有完整的提交历史,可以直接在本地进行代码提交 (本地和远端服务器都有)

  2. 每次提交记录的都是完整的文件快照,而不是记录增量 (因此也导致对大文件的支持不友好,每次都要保存大量信息)

  3. 通过 Push 等操作来完成和远端代码的同步

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

2. Git 基本使用方式

Git 的基本命令介绍,如何使用这些命令,以及命令的原理

03.Git 研发流程

依托代码管理平台 Gitlab / Github/Gerrit 介绍我们如何进行代码的开发及团队合作

未完待续...