Git Mastery

覆盖日常开发 95% 以上场景的 Git 命令手册,助你轻松驾驭版本控制。

基础配置 (Configuration)

设置全局用户名
git config --global user.name "Your Name"
已复制到剪贴板
设置全局邮箱
git config --global user.email "your@email.com"
已复制到剪贴板
设置默认编辑器 (如 vim/code)
git config --global core.editor "vim"
已复制到剪贴板
设置默认主分支名为 main
git config --global init.defaultBranch main
已复制到剪贴板
列出所有全局配置项目
git config --global --list
已复制到剪贴板

初始化 & 克隆

在当前目录初始化 Git 仓库
git init
已复制到剪贴板
从远程克隆仓库
git clone <url>
已复制到剪贴板
克隆远程仓库的指定分支
git clone -b dev <url>
已复制到剪贴板
浅克隆 (仅拉取最近一次提交,节省空间)
git clone --depth 1 <url>
已复制到剪贴板

状态 & 查看 (High Frequency)

查看工作区与暂存区当前状态 (必备)
git status
已复制到剪贴板
简洁显示分支状态
git status -sb
已复制到剪贴板
查看未暂存的工作区改动差异
git diff
已复制到剪贴板
查看已暂存但未提交的改动差异
git diff --staged
已复制到剪贴板
精简单行显示提交历史
git log --oneline
已复制到剪贴板
全分支图形化演进历史
git log --graph --oneline --all
已复制到剪贴板
查看所有操作引用记录 (找回丢失 commit 神器)
git reflog
已复制到剪贴板

添加 & 提交

将当前目录所有改动加入暂存区
git add .
已复制到剪贴板
交互式暂存 (按代码块 hunk 细粒度选择)
git add -p
已复制到剪贴板
提交暂存区改动并填写说明
git commit -m "feat: login"
已复制到剪贴板
修改最后一次提交 (未 push 前可补救)
git commit --amend
已复制到剪贴板
直接将改动追加到上一次提交中
git commit --amend --no-edit
已复制到剪贴板

分支管理 (Core)

查看本地所有分支
git branch
已复制到剪贴板
查看本地及远程所有分支
git branch -a
已复制到剪贴板
快速切换分支 (Git 2.23+ 推荐)
git switch <branch>
已复制到剪贴板
创建并立即切换到新分支
git switch -c <branch>
已复制到剪贴板
删除已合并的本地分支
git branch -d <branch>
已复制到剪贴板
强制删除未合并的本地分支
git branch -D <branch>
已复制到剪贴板
快速切回上一个工作分支
git switch -
已复制到剪贴板

合并 & Rebase

将 dev 分支合并到当前分支
git merge dev
已复制到剪贴板
非快进合并 (保留清晰的合并节点)
git merge --no-ff dev
已复制到剪贴板
中止当前正在进行的合并
git merge --abort
已复制到剪贴板
将当前分支变基到 main (保持历史线性)
git rebase main
已复制到剪贴板
交互式变基 (整理/合并最近 5 次提交)
git rebase -i HEAD~5
已复制到剪贴板
中止变基操作
git rebase --abort
已复制到剪贴板

远程操作 (Collaboration)

查看远程仓库映射地址
git remote -v
已复制到剪贴板
关联新的远程仓库
git remote add origin <url>
已复制到剪贴板
拉取远程更新但不合并
git fetch origin
已复制到剪贴板
拉取并自动执行变基 (推荐用法)
git pull --rebase
已复制到剪贴板
推送本地改动到远程
git push
已复制到剪贴板
首次推送分支并关联上游追踪
git push -u origin <branch>
已复制到剪贴板
更安全的强制推送方式
git push --force-with-lease
已复制到剪贴板

撤销 & 回退 (Undo)

丢弃工作区的未暂存改动
git restore <file>
已复制到剪贴板
将文件从暂存区撤回
git restore --staged <file>
已复制到剪贴板
回退上一次提交 (保留代码改动)
git reset HEAD^
已复制到剪贴板
彻底重置回退 (丢弃所有改动,慎用)
git reset --hard HEAD^
已复制到剪贴板
通过新提交抵消历史改动 (线上协作最安全)
git revert <commit>
已复制到剪贴板

储藏 & 临时保存

将当前未提交改动存入储藏栈
git stash
已复制到剪贴板
查看所有储藏记录
git stash list
已复制到剪贴板
恢复最近一次储藏并从栈中移除
git stash pop
已复制到剪贴板
应用改动但保留储藏记录
git stash apply
已复制到剪贴板
包含未跟踪的文件一起储藏
git stash -u
已复制到剪贴板

Tag & 实用工具

列出本地所有 Tag 标签
git tag
已复制到剪贴板
创建带注释的正式版本标签
git tag -a v1.0.0 -m "v1"
已复制到剪贴板
推送本地所有标签到远程
git push origin --tags
已复制到剪贴板
从其他分支“挑拣”特定提交应用到当前
git cherry-pick <commit>
已复制到剪贴板
逐行追踪文件每一行的修改者与时间
git blame <file>
已复制到剪贴板

实战组合 (Workflow)

同步清理远程已失效的分支引用
git fetch --prune
已复制到剪贴板
同步远程主干并保持历史线性
git pull origin main --rebase
已复制到剪贴板
一键清理所有已合并的废弃本地分支
git branch --merged | grep -v main | xargs git branch -d
已复制到剪贴板