git-初识 (一)

167 阅读3分钟

1. 简介

git ,一个分布式的版本管理工具,是由Linus Torvalds(Linux 内核创始人)于 2005 年开发,最初是为了解决 Linux 内核开发中的版本控制问题。当时,Linux 团队使用的商业版本控制系统(BitKeeper)停止免费授权,促使 Linus 设计了一个更高效、分布式、开源的替代品——Git。

git 的核心功能包含:1. 版本控制,即记录文件的历史变更,支持任意版本回溯,同时对于每次的提交系统将生成唯一hash值,确保数据的完整性;2. 分支管理,Git 采用轻量级分支允许并行开发,合并十分高效,适合团队合作和功能实现;3. 分布式架构,即每一个参与者都拥有 完整的代码仓库副本,不依赖中央服务器,支持离线操作,提交、分支切换操作都可以本地完成;4. 协作和同步,即开发者可以通过远程的代码仓库,使用pullpush 同步变更,支持多人协作的冲突解决机制。

Git 十分高效,多次操作都可以在本地完成,速度极快,极大的优化了代码的处理能力,并通过SHA-1哈希算法标识内容,确保任何修改都是可以被检测到,除此以外,Git 支持多种工作流模式,如集中式、功能分支等,甚至可以通过定制钩子(hooks)自动化任务。

2. Git 组件

Git 的相关组件可以分为 核心功能模块辅助工具生态系统扩展 三大类。以下是结构化分类:


1. 核心功能模块

这些是 Git 自身提供的、不可或缺的基础组件:

  • 版本数据库(.git/ 目录)
    • 存储所有对象(Commit/Tree/Blob/Tag)、引用(分支/HEAD)、配置等。
  • 工作区(Working Directory)
    • 用户直接编辑的物理文件目录。
  • 暂存区(Staging Area/Index)
    • 临时存储待提交的变更,通过 git add 填充。
  • 命令集(Git CLI)
    • git commitgit branchgit merge 等原生命令。

2. 辅助工具

Git 原生或社区提供的增强工具:

  • 可视化工具
    • gitk(内置历史查看器)、git-gui(基础图形界面)。
  • 差异/合并工具
    • git difftool(调用外部工具如 Meld、Beyond Compare)。
  • 钩子(Hooks)
    • 自动化脚本(如 pre-commit 运行代码检查)。

3. 远程协作组件

与分布式工作流相关的模块:

  • 协议支持
    • SSH(git@host:repo.git)、HTTPS、Git 协议。
  • 远程仓库(Remote)
    • originupstream 等远程链接配置。
  • 同步命令
    • git fetchgit pushgit pull

4. 扩展生态组件

依赖 Git 但非核心的功能:

  • 托管平台
    • GitHub(Issues/PRs)、GitLab(CI/CD)、Gitea(自托管)。
  • 大文件支持
    • Git LFS(管理二进制文件)。
  • 子模块/子仓库
    • git submodule(嵌套其他 Git 仓库)。

5. 第三方集成

与外部系统联动的组件:

  • CI/CD 系统
    • GitHub Actions、Jenkins(通过 Git 触发流水线)。
  • IDE 插件
    • VS Code Git 扩展、IntelliJ 的 Git 集成。