📚 Git 命令速查表

6大类50+常用命令 · 可视化工作流 · 8个常见场景解决方案 · Git配置最佳实践

📊 Git工作流 📁 基础操作 🌿 分支管理 🌐 远程仓库 ↩️ 撤销操作 📜 历史查看 🔧 场景方案 ⚡ 高级技巧
📊

Git 四区工作流程图

📝 工作区
git add git checkout git restore
📌 暂存区
git commit git reset git restore --staged
💻 本地仓库
git push git pull git fetch
☁️ 远程仓库
git clone git remote
📁

基础操作

  • git init
    初始化本地仓库
  • git clone <url>
    克隆远程仓库
  • git add <file>
    添加文件到暂存区
  • git add .
    添加所有更改
  • git commit -m "message"
    提交更改
  • git status
    查看仓库状态
🌿

分支管理

  • git branch
    查看本地分支
  • git branch <name>
    创建新分支
  • git checkout <branch>
    切换分支
  • git checkout -b <branch>
    创建并切换分支
  • git merge <branch>
    合并分支
  • git branch -d <branch>
    删除分支
🌐

远程仓库

  • git remote -v
    查看远程仓库地址
  • git remote add origin <url>
    添加远程仓库
  • git push origin <branch>
    推送到远程仓库
  • git pull origin <branch>
    从远程仓库拉取
  • git fetch origin
    获取远程更新
↩️

撤销操作

  • git restore <file>
    撤销工作区修改
  • git restore --staged <file>
    撤销暂存区
  • git reset --soft HEAD^
    撤销commit,保留修改
  • git reset --hard HEAD^
    撤销commit,删除修改
  • git revert <commit>
    安全撤销,生成新commit
📜

历史查看

  • git log
    查看提交历史
  • git log --oneline
    简洁模式
  • git log --graph
    图形化分支
  • git diff
    查看工作区修改
  • git show <commit>
    查看指定提交详情

高级技巧

  • git stash
    暂存当前修改
  • git stash pop
    恢复暂存修改
  • git rebase <branch>
    变基操作
  • git cherry-pick <commit>
    挑选特定提交
  • git bisect
    二分查找问题
🔧

8个常见Git场景解决方案

😅 提交信息写错了
刚提交完,发现commit message写错了,或者漏了文件
解决方案: # 修改最近一次提交信息 git commit --amend -m "新的提交信息" # 添加漏掉的文件到最近一次提交 git add 漏掉的文件 git commit --amend --no-edit
⏸️ 临时切换分支
正在开发新功能,需要紧急切换到其他分支修复bug
解决方案: # 暂存当前工作 git stash save "正在开发的功能" # 切换到其他分支修复bug git checkout bugfix # 修复完成后切回原分支 git checkout feature git stash pop
⚠️ 错误提交到远程仓库
不小心把错误的代码push到远程仓库了,需要撤销
解决方案: # 方法1:安全撤销(推荐) git revert HEAD git push origin main # 方法2:强制覆盖(谨慎使用) git reset --hard HEAD^ git push --force origin main
🔀 合并分支产生冲突
合并分支时遇到冲突,需要解决冲突
解决方案: # 查看冲突文件 git status # 手动解决冲突后 git add 已解决的文件 git commit -m "解决合并冲突" # 或者取消合并 git merge --abort
🔄 不小心删除了分支
误操作删除了还未合并的分支
解决方案: # 查看所有操作记录 git reflog # 找到被删除分支的最后commit git checkout -b 恢复的分支名 commit_id
📦 多个commit合并成一个
本地有多个琐碎的commit,想合并成一个整洁的提交
解决方案: # 交互式变基 git rebase -i HEAD~3 # 在编辑器中,将pick改为squash或s # 保存后编辑新的commit message
🚫 让已跟踪的文件被忽略
配置文件不小心提交了,现在想从版本控制中移除
解决方案: # 从Git仓库移除但保留本地文件 git rm --cached 文件名 # 添加到.gitignore echo "文件名" >> .gitignore git add .gitignore git commit -m "停止跟踪文件"
🔍 找回丢失的修改
执行了git reset --hard,发现丢失了重要的修改
解决方案: # 查看所有操作历史 git reflog # 找到丢失commit的id git checkout commit_id # 或者创建新分支保存 git branch 恢复的分支 commit_id
⚙️

Git 全局配置速查

配置项 命令 说明
用户名 git config --global user.name "Your Name" 设置全局用户名
用户邮箱 git config --global user.email "email@example.com" 设置全局邮箱
默认编辑器 git config --global core.editor "code --wait" 设置VS Code为默认编辑器
别名配置 git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.st status
设置常用命令别名
自动换行 git config --global core.autocrlf input 处理跨平台换行符
查看配置 git config --list 查看所有配置
🎯

Git 工作流最佳实践对比

🌿 Git Flow

适合大型项目,版本发布严格

  • main - 生产分支
  • develop - 开发分支
  • feature/* - 功能分支
  • release/* - 发布分支
  • hotfix/* - 紧急修复

🚀 GitHub Flow

适合持续部署,简单高效

  • main - 主分支
  • feature/* - 功能分支
  • Pull Request - 代码审查
  • 自动部署测试
  • 合并后自动部署

📱 GitLab Flow

环境分支+功能分支

  • main - 主分支
  • pre-production - 预发布
  • production - 生产环境
  • 环境分支部署

📖 Git命令速查表:从入门到精通

Git 是目前最流行的分布式版本控制系统,无论是个人开发者还是团队协作,掌握Git都是必备技能。ng.cc整理的Git命令速查表覆盖了初始化、提交、分支、远程、撤销、历史查看6大核心模块,包含50+最常用命令,并提供可视化工作流程图8个真实开发场景的解决方案

📊 四区工作流可视化

工作区、暂存区、本地仓库、远程仓库的流转关系一目了然,告别抽象概念。

🔧 8个高频场景方案

提交写错、分支误删、冲突解决、撤销推送……覆盖90%开发痛点。

⚡ 一键复制命令

所有命令均带复制按钮,无需手敲,即查即用。

🎯 工作流最佳实践

Git Flow / GitHub Flow / GitLab Flow 对比,选择适合团队的协作模式。

🎯 Git 常用命令分类详解

📁 基础操作

git init 初始化仓库,git clone 克隆远程项目,git add 将修改提交到暂存区,git commit 将暂存区内容提交到本地仓库,git status 随时查看当前状态。这是每天使用频率最高的命令组。

🌿 分支管理

git branch 查看/创建分支,git checkout 切换分支,git merge 合并分支。分支是Git的精髓,建议每个功能独立分支开发,保持主分支整洁。

🌐 远程协作

git push 上传本地提交,git pull 拉取远程更新,git fetch 仅获取不合并。多人协作时,建议先pull再push,避免冲突。

↩️ 撤销与恢复

git restore 是Git 2.23+的新命令,替代git checkout的撤销功能;git reset 用于本地撤销;git revert 用于远程安全撤销。误操作时不要慌,Git几乎能找回所有丢失的提交。

❓ Git常见问题解答

Q1:`git pull` 和 `git fetch` 有什么区别?
git pull = git fetch + git mergefetch 只将远程更新下载到本地仓库,不会自动合并;pull 下载后立即合并。推荐先用fetch查看差异,再决定是否合并,更安全。
Q2:如何修改已经push的commit message?
如果尚未推送,使用git commit --amend;如果已推送,修改后需git push --force,但务必确认只有你使用该分支。团队分支禁止force push。
Q3:`reset`、`revert`、`restore` 三者的区别?
  • git reset:移动HEAD指针,可用于撤销commit(本地操作)。
  • git revert:创建新的反向提交来抵消旧提交(远程安全)。
  • git restore:专门用于撤销工作区或暂存区的修改(不改变提交历史)。
Q4:为什么.gitignore对已跟踪文件无效?
.gitignore 只对未跟踪的文件生效。如果文件已经被git跟踪,需要先执行git rm --cached 文件名停止跟踪,再添加到.gitignore。
Q5:如何优雅地解决合并冲突?
1. 使用git status查看冲突文件。
2. 手动编辑文件,搜索<<<<<<<=======>>>>>>>标记,保留正确内容。
3. 删除冲突标记,git add标记为已解决。
4. git commit 完成合并。
推荐使用VS Code等IDE的图形化冲突解决工具,效率更高。
Q6:git reflog 为什么能找回丢失的提交?
git reflog 记录了HEAD指针的每一次移动历史(包括被重置、变基、删除分支的操作)。只要提交在本地仓库中存在过,就能通过reflog找到commit id恢复。reflog记录默认保留90天。

🔗 关联工具推荐

本工具是ng.cc开发者工具箱版本控制系列,您可能还需要:

⚡ 所有命令均在浏览器本地处理,不存储任何用户数据。