5.Git 的正确使用姿势与最佳实践 | 青训营

2023年 8月 26日 78.9k 0

git是什么

1.1 版本控制

  • Git是什么?
    Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency.
  • 版本控制是什么?
    一种记录一个或若干文件内容变化,以便将来查阅特定版本修订情况的系统
  • 为什么需要版本控制?
    更好的关注变更,了解到每个版本的改动是什么,方便对改动的代码进行检查,预防事故发生;也能够随时切换到不同的版本,回滚误删误改的问题代码;

image.png

1.1.1 本地版本控制

  • 最初的方式
    通过本地复制文件夹,来完成版本控制,一般可以通过不同的文件名来区分版本
  • 解决方案
    开发了一些本地的版本控制软件,其中最流行的是RCS
  • 基本原理
    本地保存所有变更的补丁集,可以理解成就是所有的Diff,通过这些补丁,我们可以计算出每个版本的实际的文件内容
  • 缺点
    RCS这种本地版本控制存在最致命的缺陷就是只能在本地使用,无法进行团队协作,因此使用的场景非常有限,因此衍生出了集中式版本控制
  • 1.1.2 集中版本控制

    代表性工具: SVN

    • 基本原理:
  • 提供一个远端服务来保存文件,所有用户的提交都提交到该服务器中
    2.增量保存每次提交的 Diff,如果提交的增量中和远端现存的文件存在冲突,则需要本地提前解决冲突
    • 优点:
  • 学习简单,更容易操作
  • 支持二进制文件,对大文件支持更友好
    • 缺点:
  • 本地不存储版本管理的概念,所有提交都只能联上服务器后才可以提交
  • 分支上的支持不够好,对于大型项目团队合作比较困难
  • 用户本地不保存所有版本的代码,如果服务端故障容易导致历史版本的丢失。
  • 1.1.3 分布式版本控制

    代表性工具: Git

    • 基本原理:
  • 每个库都存有完整的提交历史,可以直接在本地进行代码提交
  • 每次提交记录的都是完整的文件快照,而不是记录增量
  • 通过 Push 等操作来完成和远端代码的同步
    • 优点:
  • 分布式开发,每个库都是完整的提交历史,支持本地提交,强调个体
  • 分支管理功能强大,方便团队合作,多人协同开发
  • 校验和机制保证完整性,一般只添加数据,很少执行删除操作,不容易导致代码丢失
    • 缺点:
  • 相对SVN更复杂,学习成本更高
  • 对于大文件的支持不是特别好(git-lfs工具可以弥补这个功能)
  • 1.2

    • 作者

    Linus Torvalds(就是Linux这个项目的作者,同时也是Git 的作者)。

    • 开发原因

    怀疑Linux团队对BitKeeper (另一种分布式版本控制系统,专有软件)进行了逆向工程,BitKeeper不允许Linux团队继续无偿使用。因此决定自己开发一个分布式版本控制系统。

    • 开发时间

    大概花了两周时间,就完成了Git的代码第一个版本,后续Linux项目就开始使用Git进行维护。

    • Github

    全球最大的代码托管平台,大部分的开源项目都放在这个平台上。

    • Gitlab

    全球最大的开源代码托管平台,项目的所有代码都是开源的,便于在自己的服务器上完成Gitlab的搭建。

    • Gerrit

    由Google开发的一个代码托管平台,Android这个开源项目就托管在Gerrit之上。

    相关文章

    服务器端口转发,带你了解服务器端口转发
    服务器开放端口,服务器开放端口的步骤
    产品推荐:7月受欢迎AI容器镜像来了,有Qwen系列大模型镜像
    如何使用 WinGet 下载 Microsoft Store 应用
    百度搜索:蓝易云 – 熟悉ubuntu apt-get命令详解
    百度搜索:蓝易云 – 域名解析成功但ping不通解决方案

    发布评论