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 集成)辅助理解分支和提交历史。


参考来源

相关推荐
Rosanci4 小时前
谷歌浏览器插件开发实战指南:从 Hello World 到上架发布
大数据·人工智能·chrome·程序人生
m0_466525295 小时前
云从科技上线云起ModelHub:AI团队时代的模型算力基础设施
大数据·人工智能·科技
蓝速科技6 小时前
会议室门牌公告通知发布选型与落地指南丨蓝速科技
大数据·运维·数据库·人工智能·科技
郑州光合科技余经理8 小时前
同城外卖小程序开发:下单成功后,后台导出能不能对上用户端状态
开发语言·前端·git·后端·uni-app·php·ai编程
我命由我123458 小时前
Git 推送报错:error: src refspec main does not match any
运维·git·gitee·github·运维开发·学习方法·版本控制
SelectDB9 小时前
同等资源下 Apache Doris 4.2 vs StarRocks 4.1.1:1TB SSB 与 TPC-H 性能实测
大数据·数据库·数据分析
SelectDB10 小时前
Doris vs ClickHouse:企业 OLAP 走向下一阶段,两种技术路线如何选择
大数据·数据库·数据分析
vx-程序开发10 小时前
【计算机毕设】django校园跑腿服务系统83141
java·数据库·vue.js·spring boot·spring·elasticsearch·django
当下新鲜事10 小时前
脱硫脱硝塔动力系统科普:四方DL500变频器工作原理解析
大数据·运维·物联网·业界资讯
珠海西格电力10 小时前
零碳园区管理系统“智慧大脑”功能对园区运营成本的影响有哪些?
大数据·人工智能·安全·系统架构·能源