Git | 简介与安装

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

核心概念

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

核心功能

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

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

  • 协作开发 ------ 多人通过远程仓库共享代码,支持并行开发(如 GitHub 的 Pull 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 Bash 或 PowerShell 运行 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 可查看)


相关推荐
天河归来9 小时前
第三方接口不稳定,如何让核心任务继续完成
java·大数据
GlobalInfo10 小时前
2026年全球机器人用超平执行器市场研究报告:市场规模达7.51亿美元,人形机器人商业化与轻量化运动控制需求推动行业增长
大数据·人工智能·数码相机·microsoft·机器人
IT古董12 小时前
《Agent开发工程师成长指南》- 第4章 第2节:Prompt设计五要素——任务、角色、上下文、约束与输出格式
大数据·人工智能·prompt
Allen_LVyingbo14 小时前
NVIDIA CUDA Tile 在医疗计算中的算子形式化、算法重构与内核实现
大数据·python·算法·重构·知识图谱·健康医疗·数据库架构
全栈陈序员15 小时前
【Git】从入门到精通(一)—— Git简介:什么是版本控制系统
大数据·git·elasticsearch
中国搜索直付通15 小时前
分账系统有风险吗?资金安全怎么保障?
大数据·支付通道·分账系统·分账支付
阿里云大数据AI技术15 小时前
云栖实录|阿里云AI搜索系列产品全新发布 - 新引擎
人工智能·elasticsearch
一枕槐安48715 小时前
微调 vs Prompt:业务场景下两种方案成本 & 效果对比
大数据·人工智能·prompt·混合架构·推理成本·行为固化·知识边界
SelectDB16 小时前
Apache Doris 与 SelectDB 是什么关系?从开源技术到面向 Agent 的极速分析数据库
大数据·数据库·数据分析
科技新资讯16 小时前
AI如何批量处理Excel文件? 从数据合并、清洗到自动生成报表,看看 AI Agent 怎么完成任务
大数据·人工智能·excel