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


参考来源

相关推荐
小猿姐26 分钟前
唯品会大规模数据库云原生实践:基于 KubeBlocks 管理数千实例的统一运维之路
运维·elasticsearch·云原生
SelectDB10 小时前
Apache Doris Python UDF:让 SQL 直接调用 Python 生态,支撑 Agent 时代复杂业务逻辑
大数据·数据库·python
ApacheSeaTunnel13 小时前
当多表数据涌入,Apache SeaTunnel 如何巧妙化解主键冲突?
大数据·开源·数据集成·seatunnel·技术分享·数据同步
A_Lonely_Cat17 小时前
记一次 GitHub 幽灵协作者大清洗:强制重写 Git 历史与穿透 CDN 缓存实践
git·github
Elasticsearch18 小时前
使用 Elastic Agent Builder 和 Sarvam AI 构建多语言语音 agent
elasticsearch
和你看星星3 天前
Git rerere:让重复冲突只解决一次
git
大大大大晴天3 天前
Hudi Metadata Table 与 Hive Sync (HMS)怎么选?
大数据
手可摘星辰7774 天前
一次线上FlinkCDC异常排查复盘
大数据·flink
大大大大晴天4 天前
Hudi技术内幕:Metadata Table原理与实践
大数据
武子康5 天前
调查研究-197 FAISS vs Elasticsearch 全面对比:从向量检索、全文搜索到 RAG 选型指南
人工智能·elasticsearch·agent