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 未找到相关命令
试试搜索其他关键字,如 "merge" 或 "reset"。