Git:必备的版本控制系统
Git 是全球使用最广泛的分布式版本控制系统,由 Linus Torvalds 于 2005 年为 Linux 内核开发而创建。理解 Git 的核心命令和概念对每位开发者都至关重要。

Git 核心概念
仓库(Repository)
Git 仓库是 Git 跟踪的目录。它包含所有项目文件以及一个隐藏的 .git 文件夹,其中保存了完整的版本历史。
工作树、暂存区和仓库
Git 有三个区域存放文件变更:
- 工作树(Working tree):磁盘上的实际文件
- 暂存区(Staging area / index):标记为下一次提交的文件
- 仓库(Repository):存储在 .git 中的已提交历史
分支(Branches)
分支是指向特定提交的轻量级指针。默认分支通常称为 main(以前是 master)。分支使得并行开发成为可能,且不影响主代码库。
提交(Commits)
提交是某一时刻暂存文件的快照。每个提交都有唯一的 SHA-1 哈希值、作者、时间戳和消息。
基本 Git 命令

设置
git config --global user.name "Your Name"
git config --global user.email "you@example.com"
git init # 初始化新仓库
git clone <url> # 克隆现有仓库
日常操作
git status # 检查文件状态
git add . # 暂存所有更改
git add <file> # 暂存特定文件
git commit -m "message" # 提交并附上消息
git push origin main # 推送到远程
git pull # 从远程拉取并合并
分支操作
git branch # 列出分支
git branch feature-name # 创建分支
git checkout feature-name # 切换分支
git checkout -b new-branch # 创建并切换分支
git merge feature-branch # 合并到当前分支
git branch -d feature-name # 删除分支
历史与差异
git log --oneline # 简洁日志
git log --graph --all # 可视化分支图
git diff # 未暂存的更改
git diff --staged # 已暂存的更改
git show <commit> # 显示提交详情
撤销更改
git restore <file> # 丢弃工作树更改
git restore --staged <file> # 取消暂存文件
git revert <commit> # 创建撤销提交
git reset --soft HEAD~1 # 撤销上次提交,保留更改已暂存
git reset --hard HEAD~1 # 撤销上次提交,丢弃更改
远程操作
git remote add origin <url> # 添加远程仓库
git remote -v # 列出远程仓库
git fetch origin # 下载但不合并
git push --set-upstream origin main # 首次推送
git pull --rebase # 变基而非合并

贮藏(Stashing)
git stash # 保存未提交的工作
git stash list # 查看已保存的贮藏
git stash pop # 应用并移除最新贮藏
git stash apply stash@{1} # 应用特定贮藏
Git 工作流策略
功能分支工作流(Feature Branch Workflow)
为每个功能或错误修复创建分支:
git checkout -b feature/new-feature- 进行提交
- 发起拉取请求(Pull Request)
- 审查并合并到 main
Gitflow
更结构化的工作流,包含 main、develop、feature、release 和 hotfix 分支。适用于有定期发布计划的项目。
主干开发(Trunk-Based Development)
短期存在的功能分支频繁合并到 main。与 CI/CD 和功能开关配合良好。
有用的 Git 别名
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.lg "log --oneline --graph --all"
使用 Git 备忘录参考
我们的 Git 备忘录工具提供交互式参考:
- 按类别组织的所有常用 Git 命令
- 日常操作的快速参考速查表
- 分支策略的工作流图
- 面向初学者的 Git 概念解释
- 用于变基(rebase)、拣选(cherry-pick)和二分查找(bisect)的高级命令
工作时保持打开状态,无需离开终端即可快速查找命令。