Git核心命令速查表

Git 是一个分布式版本控制系统,用于高效管理项目源代码。掌握其核心命令是开发者必备技能。以下是一份精炼的 Git 核心命令速查表,旨在帮助你在 2 分钟内快速回顾或上手。

一、 Git 工作流与核心区域

Git 操作围绕三个核心区域展开:工作区、暂存区、本地仓库。理解它们的关系是掌握命令的基础。

区域 描述
工作区 本地项目目录,直接编辑文件的地方。
暂存区 一个缓存区域,用于临时存放准备提交的更改。
本地仓库 存储项目所有版本历史的数据库。
远程仓库 托管在网络上的项目仓库,如 GitHub、GitLab。

二、 核心命令速查表

下表按操作流程分类,汇总了最常用、最核心的 Git 命令。

操作类别 命令 描述与常用参数
配置与初始化 git config --global user.name "Your Name" 设置全局用户名。
git config --global user.email "email@example.com" 设置全局邮箱。
git init 在当前目录初始化一个新的 Git 仓库。
git clone <url> 克隆一个远程仓库到本地。
文件状态与暂存 git status 查看工作区和暂存区的文件状态。
git add <file> 将指定文件从工作区添加到暂存区。
git add . 将所有修改和新增的文件添加到暂存区。
git add -A 添加所有变化(修改、新增、删除)到暂存区。
提交更改 git commit -m "提交信息" 将暂存区的所有内容提交到本地仓库。
git commit --amend 修改最新一次提交的提交信息或内容,不产生新提交。
查看历史与差异 git log 查看提交历史。
git log --oneline --graph 以单行、图形化方式查看提交历史。
git diff 比较工作区和暂存区的差异。
git diff --staged 比较暂存区和本地仓库的差异。
分支管理 git branch 列出所有本地分支(当前分支前有 * 标记)。
git branch <branch-name> 创建新分支。
git checkout <branch-name> 切换到指定分支。
git checkout -b <branch-name> 创建并切换到新分支。
git merge <branch-name> 将指定分支合并到当前分支。
git branch -d <branch-name> 删除已合并的指定分支。
git branch -D <branch-name> 强制删除指定分支(无论是否合并)。
远程仓库操作 git remote -v 查看远程仓库地址。
git pull origin <branch> 从远程仓库拉取并合并指定分支的更新到当前分支。
git push origin <branch> 将当前分支推送到远程仓库的指定分支。
git push -u origin <branch> 推送并设置上游分支(首次推送常用)。
撤销与回滚 git restore <file> 丢弃工作区中指定文件的修改(Git 2.23+)。
git restore --staged <file> 将暂存区的指定文件移回工作区。
git reset --soft HEAD~1 撤销最近一次提交,但保留更改在暂存区。
git reset --hard HEAD~1 危险! 撤销最近一次提交,并丢弃所有更改。
git revert <commit-id> 创建一个新的提交来撤销指定提交的更改(安全)。
临时保存 git stash 将当前工作区和暂存区的修改临时保存起来。
git stash pop 恢复最近一次保存的修改,并从 stash 列表中删除。
git stash list 列出所有保存的 stash。

三、 核心场景与命令组合示例

场景一:日常开发与提交

这是最常见的流程:修改代码 -> 暂存 -> 提交。

bash 复制代码
# 1. 查看修改了哪些文件
git status

# 2. 将所有修改添加到暂存区
git add .

# 3. 提交到本地仓库,并附上清晰的提交信息
git commit -m "feat: 新增用户登录验证功能"

# 4. 将本地提交推送到远程仓库(假设当前分支为 main)
git push origin main
场景二:处理分支与合并

分支是 Git 的杀手级功能,用于功能开发和 Bug 修复。

bash 复制代码
# 1. 基于 main 分支创建一个新功能分支
git checkout -b feature/add-search

# 2. 在新分支上开发并提交
# ... (编写代码)
git add .
git commit -m "feat: 实现基础搜索功能"

# 3. 开发完成后,切换回主分支并合并
git checkout main
git pull origin main # 先拉取最新的 main 分支代码
git merge feature/add-search

# 4. 如果合并成功,推送 main 分支并删除已合并的特性分支
git push origin main
git branch -d feature/add-search
场景三:撤销误操作

这是 Git 安全性的体现,提供了多种"后悔药"。

bash 复制代码
# 1. 不小心 `git add` 了不该暂存的文件,将其移出暂存区
git restore --staged unwanted_file.txt

# 2. 工作区的修改写乱了,想恢复到上次提交的状态
git restore modified_file.txt

# 3. 提交信息写错了,想修改最后一次提交的信息(未推送时)
git commit --amend -m "新的提交信息"

# 4. 已推送的提交有问题,使用 `revert` 安全地撤销
# 先找到要撤销的提交ID
git log --oneline
# 假设要撤销的提交ID是 abc1234
git revert abc1234
# 这会创建一个新的提交来抵消 abc1234 的更改,然后正常 push 即可
场景四:暂存工作现场

当需要紧急切换到其他分支处理问题,但当前工作未完成时。

bash 复制代码
# 1. 保存当前未提交的修改
git stash save "WIP: 正在开发购物车功能"

# 2. 切换到其他分支处理紧急任务
git checkout main
# ... (修复bug并提交)

# 3. 切换回原分支,恢复工作现场
git checkout feature/cart
git stash pop

四、 进阶提示与最佳实践

  1. 提交信息规范 :使用清晰、一致的提交信息格式(如 feat:fix:docs:),便于团队协作和后期追溯 。
  2. 频繁提交:将大功能拆分为多个小提交,每个提交只做一件事,便于回滚和代码审查。
  3. 勤拉取 :在开始工作前和推送前,先执行 git pull 更新本地代码,减少合并冲突。
  4. 理解 mergerebasemerge 保留完整历史,适合公共分支;rebase 使历史线更整洁,适合个人分支整理。在团队协作中,谨慎使用 rebase 修改已共享的提交历史。
  5. 善用 .gitignore 文件 :将日志、编译产物、IDE 配置文件等加入 .gitignore,避免无关文件进入版本库。

这份速查表覆盖了 Git 日常开发中 95% 以上的场景。掌握这些命令,你就能高效地进行版本控制。建议将常用命令组合(如 git add . && git commit -m "...")形成肌肉记忆,并结合图形化工具(如 gitk 或 IDE 集成)辅助理解分支和提交历史。


参考来源

相关推荐
Willliam_william8 小时前
QEMU学习之路(12)— 使用qemu-system-riscv64测试IOMMU
大数据·学习·elasticsearch
雨声不在8 小时前
家用小GIT
git
雨声不在8 小时前
mac-intel安装git-lfs
git·elasticsearch·macos
科技测评-阿博8 小时前
国际物流怎么找客户?一套可复用的ToB获客筛选思路
大数据
老赵聊算法、大模型备案8 小时前
“清朗·整治AI应用乱象”专项行动深度解读:从资质合规视角看AI应用新规
大数据·人工智能·算法·安全·aigc
rainbow7242448 小时前
深度解析:如何建立适合自己团队的AI能力评估矩阵?
大数据·人工智能
m0_380167148 小时前
如何用订单簿数据判断真假突破(OrderBook 实战)
大数据·人工智能·区块链
2601_957190908 小时前
科技驱动文旅变革:超元力剧场的技术哲学与商业价值
大数据·人工智能·科技
摇滚侠8 小时前
Docker 部署 MySQL ElasticSearch Kibana RabbitMQ
mysql·elasticsearch·docker