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系统bashsudo apt install git -
RedHat/CentOS系统bashsudo yum install git
-
macOS 系统
-
安装方式 ------ 先安装包管理器
Homebrew,再执行:bashbrew install git
Windows 系统
-
检测是否安装 ------
PowerShell输入git -v显示Git版本powershellWindows 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,再执行:powershellscoop 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 |
必要配置
-
设置全局用户信息 ------ 提交时标识身份
bashgit config --global user.name "Your Name" git config --global user.email "email@example.com"- 参数
--global------ 对所有仓库生效。若需针对特定仓库配置,去掉该参数并在仓库目录下运行命令
- 参数
-
检查用户信息
bashgit config --global user.name git config --global user.email -
检查配置
bashgit config --list # 查看所有配置
初始化版本库
概念
- 定义 ------ 版本库(仓库)是一个被
Git管理的目录,可以跟踪其中所有文件的修改、删除等操作,并保存历史记录 - 本质 ------ 核心是一个隐藏的
.git目录,存储所有版本控制所需的元数据
创建版本库
-
创建空目录(建议路径无中文)
bashmkdir learngit # 创建目录 cd learngit # 进入目录 pwd # 查看当前路径,确认位置 -
初始化仓库:
bashgit init # 将当前目录变为 Git 管理的仓库bashInitialized empty Git repository in /Users/GitLearn/learngit/.git/提示 :成功后生成
.git隐藏目录(ls -ah可查看)