Git | 简介与安装

Git 是一个分布式版本控制系统 DVCS,用于高效管理项目文件的修改历史,支持多人协作开发

核心概念

  • 版本控制 ------ 记录文件随时间的变化,允许回溯到任意历史版本,避免手动备份的混乱
  • 分布式架构 ------ 每个开发者拥有完整的仓库副本(包括全部历史),不依赖中央服务器,可离线工作
  • 仓库(Repository)
    • 本地仓库:用户本地的版本库
    • 远程仓库(如 GitHubGitLab:团队共享的中央代码库
  • 工作区、暂存区、版本库
    • 工作区:本地直接编辑的目录
    • 暂存区(Stage/Index:临时存放待提交的变更
    • 版本库:提交后永久存储的位置
  • 提交(Commit) ------ 每次提交生成一个唯一的 SHA-1 哈希值,包含文件快照、作者、时间戳和提交信息
  • 分支(Branch) ------ 独立开发线,默认主分支为mastermain分支间可快速切换/合并
  • 合并(Merge)------ 将分支历史整合到当前分支,保留原始提交记录
  • 变基(Rebase)------ 将分支的修改"移植"到另一分支,形成线性历史
  • 远程操作 ------ push(推送本地提交到远程)、pull(拉取远程更新)、fetch(仅获取远程变更)

核心功能

  • 历史追踪与回退 ------ 查看文件修改记录(git log),回滚到任意版本(git resetgit revert

  • 分支管理 ------ 创建/切换分支(git branch/git checkout),合并代码(git merge),解决冲突

  • 协作开发 ------ 多人通过远程仓库共享代码,支持并行开发(如 GitHubPull Request 机制)

  • 代码差异比较 ------ 使用git diff对比工作区、暂存区或版本间的差异

  • 暂存与恢复 ------ 临时保存未完成的修改(git stash),后续恢复继续工作

  • 标签 Tag ------ 为重要版本(如v1.0)打标记,便于快速定位(git tag

  • 钩子 Hooks ------ 自动化脚本,在特定事件(如提交前、推送后)触发自定义操作


集中式 vs 分布式 版本控制系统

维度 集中式 CVS/SVN 分布式 Git/Mercurial
版本库位置 仅中央服务器存储完整历史 每个用户本地都有完整版本库
联网需求 必须联网才能提交、更新代码 本地可完成大部分操作(提交、分支),仅同步需联网
速度 受网络带宽和服务器性能限制 本地操作极快,仅推送/拉取依赖网络
容灾性 中央服务器故障导致全员无法工作 任意用户本地仓库均可作为恢复源
协作模式 直接与中央服务器交互 支持点对点协作,通常用"中央服务器"简化流程
分支管理 分支创建/合并慢且复杂 分支轻量级,合并高效

分布式系统的"伪中央服务器" ------ 尽管Git设计上无需中心节点,但实践中仍常使用远程仓库 (如 GitHub/GitLab)原因包括:

  • 协作便利性 ------ 提供统一的代码交换节点,避免两两同步的混乱
  • 权限管理 ------ 企业级需求(如保护主分支、Code Review 机制)
  • 附加功能 ------ Issue 跟踪、CI/CD 流水线、Wiki 文档等集成

安装

Linux 系统
  • 检测是否安装 ------ 终端输入 git,若未安装会提示安装命令

    bash 复制代码
    $ git
    The program 'git' is currently not installed. You can install it by typing:
    sudo apt-get install git
  • 安装方式

    • Debian/Ubuntu 系统

      bash 复制代码
      sudo apt install git
    • RedHat/CentOS 系统

      bash 复制代码
      sudo yum install git
macOS 系统
  • 安装方式 ------ 先安装包管理器 Homebrew,再执行:

    bash 复制代码
    brew install git
Windows 系统
  • 检测是否安装 ------ PowerShell 输入 git -v 显示 Git 版本

    powershell 复制代码
    Windows PowerShell                                       
    Copyright (C) Microsoft Corporation. All rights reserved.
    PS C:\Users> git -v
    git version 2.48.1.windows.1
  • 安装方式 I ------ 从 Git 官网下载安装程序,默认选项安装,完成后使用 Git BashPowerShell 运行 Git

  • 安装方式 II ------ 先安装包管理器 Scoop,再执行:

    powershell 复制代码
    scoop install git
通用包管理器操作
操作 APT (Debian/Ubuntu) Homebrew (macOS) Scoop (Windows)
安装 Git sudo apt install git brew install git scoop install git
升级 Git sudo apt update git brew update git scoop update git

必要配置

  • 设置全局用户信息 ------ 提交时标识身份

    bash 复制代码
    git config --global user.name "Your Name"
    git config --global user.email "email@example.com"
    • 参数 --global ------ 对所有仓库生效。若需针对特定仓库配置,去掉该参数并在仓库目录下运行命令
  • 检查用户信息

    bash 复制代码
    git config --global user.name git config --global user.email
  • 检查配置

    bash 复制代码
    git config --list  # 查看所有配置

初始化版本库

概念
  • 定义 ------ 版本库(仓库)是一个被 Git 管理的目录,可以跟踪其中所有文件的修改、删除等操作,并保存历史记录
  • 本质 ------ 核心是一个隐藏的 .git 目录,存储所有版本控制所需的元数据
创建版本库
  • 创建空目录(建议路径无中文)

    bash 复制代码
    mkdir learngit      # 创建目录
    cd learngit         # 进入目录
    pwd                 # 查看当前路径,确认位置
  • 初始化仓库

    bash 复制代码
    git init			# 将当前目录变为 Git 管理的仓库
    bash 复制代码
    Initialized empty Git repository in /Users/GitLearn/learngit/.git/

    提示 :成功后生成 .git 隐藏目录(ls -ah 可查看)


相关推荐
三水不滴10 小时前
Elasticsearch 实战系列(二):SpringBoot 集成 Elasticsearch,从 0 到 1 实现商品搜索系统
经验分享·spring boot·笔记·后端·elasticsearch·搜索引擎
拓端研究室10 小时前
2025-2026食品饮料行业全景洞察报告:婴童零辅食、量贩零食、东南亚出海 | 附180+份报告PDF、数据、可视化模板汇总下载
大数据·人工智能
远方160911 小时前
117-Oracle 26ai FILTER(过滤)子句新特性
大数据·数据库·sql·oracle·database
isNotNullX11 小时前
一文讲清8大数据清洗方法
大数据·数据库·数据挖掘·数据迁移
人工智能培训11 小时前
深度学习赋能千行百业:核心应用场景与发展展望
大数据·人工智能·具身智能·ai培训·人工智能工程师
Francek Chen11 小时前
【大数据存储与管理】分布式数据库HBase:05 HBase运行机制
大数据·数据库·hadoop·分布式·hdfs·hbase
LJ979511111 小时前
当AI遇上媒体发布:企业传播的下一站
大数据·人工智能
GIS数据转换器11 小时前
小龙虾(OpenClaw) 在低空经济领域的应用
大数据·人工智能·无人机·智慧城市·制造
zzzzzwbetter11 小时前
Hadoop完全分布式部署-Master的NameNode以及Slaver2的DataNode未启动
大数据·hadoop·分布式
小荟荟11 小时前
全国数据资产新闻和报纸摘要联播 2026年3月11日 第15期
大数据·人工智能