60+ 常用 Git 命令按场景分成 9 大类:配置、提交、分支、远程、撤销回滚、合并变基、标签、储藏、进阶技巧。支持关键字即时搜索与分类切换,点「复制」直接带走命令。
没有匹配的命令,换个关键词试试。
git config --global user.name "name"
设置全局用户名
git config --global user.email "email"
设置全局邮箱
git config --global core.autocrlf input
提交时 LF 换行,防止 CRLF 警告
git config --global init.defaultBranch main
默认分支名改为 main
git config --global alias.co checkout
配置别名 co 代替 checkout
git config --list
查看所有配置
git status
查看工作区状态
git add -A
添加所有改动到暂存区
git commit -m "msg"
提交并写注释
git commit --amend -m "msg"
修改最近一次提交信息
git commit -am "msg"
跳过 add 直接提交已跟踪文件
git log --oneline --graph --decorate
图形化查看提交历史
git show <hash>
查看某次提交的改动
git diff
查看未暂存的改动
git diff --cached
查看已暂存的改动
git branch
列出本地分支
git branch <name>
创建分支
git checkout -b <name>
创建并切换分支
git switch <name>
切换分支(Git 2.23+)
git branch -d <name>
删除已合并的分支
git branch -D <name>
强制删除分支
git branch --merged
查看已合并到当前的分支
git remote -v
查看远程仓库地址
git remote add origin <url>
添加远程仓库
git push -u origin main
推送并设置上游分支
git push
推送到远程
git pull
拉取并合并
git fetch --all
获取所有远程更新但不合并
git push origin --delete <branch>
删除远程分支
git restore <file>
丢弃工作区某个文件的改动
git restore --staged <file>
取消暂存(暂存区撤回工作区)
git checkout -- <file>
丢弃工作区改动(旧写法)
git reset --soft HEAD~1
撤销提交但保留改动(回到暂存区)
git reset HEAD~1
撤销提交,改动回工作区
git reset --hard HEAD~1
彻底回滚,丢弃所有改动(慎用!)
git revert <hash>
新增一次反向提交来撤销,最安全
git clean -fd
删除所有未跟踪的文件
git merge <branch>
合并分支到当前分支
git merge --abort
冲突时放弃合并
git rebase main
变基到 main 最新提交
git rebase -i HEAD~3
交互式整理最近 3 个提交
git cherry-pick <hash>
把某个提交复制到当前分支
git tag
列出所有标签
git tag v1.0.0
创建轻量标签
git tag -a v1.0.0 -m "release"
创建附注标签
git push origin --tags
推送所有标签
git tag -d v1.0.0
删除本地标签
git stash
暂存工作区改动
git stash list
查看储藏列表
git stash pop
恢复并删除最近储藏
git stash apply
恢复但不删除储藏
git stash drop
丢弃最近储藏
git log --all --grep="keyword"
按提交信息搜索提交
git blame <file>
查看每行代码最后修改人
git bisect start
二分法定位出问题的提交
git reflog
找回被 reset 掉的提交(救命命令)
git submodule add <url>
添加子模块
git lfs track "*.zip"
用 Git LFS 管理大文件
Git 的日常操作其实只有十几条命令,但一旦遇到「提交错了想撤回」「改乱了想丢弃」「分支合错了想重来」这类场景,就会立刻卡壳:reset --soft、reset --hard、revert、restore、checkout 全都和「撤销」有关,但作用范围与后果完全不同,用错一个就可能丢代码。
这份手册按使用场景而非字母顺序组织:配置、提交、分支、远程、撤销回滚、合并变基、标签、储藏、进阶技巧共 9 大类 60+ 条命令,每条都配一句人话说明。找不到具体命令时,直接在搜索框输入关键词(如 reset、合并、stash)就能即时过滤出相关条目。
「撤销回滚」这一类特意做了场景对照:想保留改动/不保留改动、想单独撤销某次提交/想整体回退,都能找到对应写法。破坏性命令(如 reset --hard、clean -fd)已明确标注「慎用」,执行前请确认改动已备份。所有内容为静态文档,无任何网络请求,可离线使用。
reset、合并),列表会实时过滤出相关命令。git reset --hard 会直接丢弃未提交改动,执行前务必确认。git revert 而不是 reset。git reflog 通常能找回被 reset 掉的提交。git restore 与 git switch 是 Git 2.23+ 推出的新命令,语义比 checkout 更清晰。git fetch --all 只下载不合并,排查远程差异时比 pull 更安全。git diff 与 git status 确认改动范围,能避免误提交。reset 移动分支指针,用来回退提交历史(--soft 保留改动在暂存区、--hard 丢弃改动);revert 生成一次反向的新提交来抵消指定提交,适合已推送的场景;restore 只针对工作区/暂存区的文件,不影响提交历史。reset 改写已推送的历史,因为会导致其他人本地历史分叉。安全做法是用 git revert <hash> 生成反向提交,再正常推送。git reflog 会记录 HEAD 的移动轨迹,找到目标提交的 hash 后再 git reset --hard <hash> 或 git branch <name> <hash> 即可恢复。越快处理成功率越高,因为未被引用的对象最终会被 Git 垃圾回收。fetch 只把远程更新下载到本地远程分支,不改动你的工作区;pull 相当于 fetch 之后再 merge(或 rebase),会直接改变当前分支。想先看清差异再合并,用 fetch 更稳妥。merge 保留完整的分支历史与合并点,适合多人协作的主干;rebase 把提交「搬」到目标分支之后,历史更线性整洁,适合整理本地未推送的提交。已推送的公共分支不要 rebase,否则会打乱他人历史。审核通过后就会展示在留言板上,稍安勿躁~
还没有留言,来抢沙发吧!