Git命令速查
约七十条Git命令分八类速查,逐条可复制,危险操作单独标注风险与安全替代方案
Git 命令速查
共收录 65 条命令全部仓库与配置日常提交分支远端同步撤销与恢复暂存历史与排查标签其他
git init在当前目录初始化一个新的 Git 仓库。
git clone <url>克隆远端仓库到本地。
加 --depth 1 只拉最近一次提交,适合体积大的仓库。
git config --global user.name "你的名字"设置全局提交用户名。
git config --global user.email "you@example.com"设置全局提交邮箱。
git config --list --show-origin查看所有配置及其来源文件,排查配置冲突时用。
git remote -v查看远端仓库地址。
git remote set-url origin <url>修改 origin 的远端地址,如从 HTTPS 换成 SSH。
git status查看工作区与暂存区状态。
加 -s 输出简洁格式。
git add <file>把指定文件加入暂存区。
用 git add -p 可以逐块选择要提交的改动。
git add .把当前目录下所有改动加入暂存区。
容易误提交无关文件,建议改为指定文件。
git commit -m "说明"提交暂存区内容。
git commit --amend修改最近一次提交(信息或内容)。
会改写历史,只对未推送的提交使用。
git diff查看工作区与暂存区的差异。
git diff --staged查看暂存区与最新提交的差异,提交前复核用。
git diff <branch1>..<branch2>比较两个分支的差异。
git branch列出本地分支。
加 -a 含远端分支,加 -vv 显示跟踪关系。
git switch <branch>切换到已存在的分支(Git 2.23+ 推荐用法)。
git switch -c <branch>创建并切换到新分支。
git checkout <branch>切换分支(老写法,同时兼具恢复文件功能)。
git branch -d <branch>删除已合并的本地分支。
未合并时用 -D 强制删除。
git push origin --delete <branch>删除远端分支。
git branch -m <new-name>重命名当前分支。
git merge <branch>把指定分支合并到当前分支。
加 --no-ff 强制生成合并提交,保留分支形状。
git rebase <branch>把当前分支的提交挪到目标分支之后,得到线性历史。
git rebase -i HEAD~3交互式整理最近 3 个提交(合并、改序、改信息)。
git cherry-pick <commit>把某个提交单独摘到当前分支。
git fetch --all --prune拉取所有远端更新并清理已删除的远端分支引用。
git pull拉取并合并远端更新(等于 fetch + merge)。
git pull --rebase拉取远端更新并以 rebase 方式接上,避免多余的合并提交。
git push推送当前分支到远端。
git push -u origin <branch>首次推送新分支并建立跟踪关系。
git push --force-with-lease在确认远端没有新提交的前提下强制推送,比 --force 安全。
git restore <file>丢弃工作区对某文件的修改(Git 2.23+)。
改动无法找回,慎用。
git restore --staged <file>把文件从暂存区撤出,但保留工作区改动。
git reset --soft HEAD~1撤销最近一次提交,改动保留在暂存区。
git reset --mixed HEAD~1撤销最近一次提交,改动退回工作区(默认行为)。
git reset --hard HEAD~1撤销最近一次提交并丢弃所有改动。
危险操作,未提交内容会永久丢失。
git revert <commit>生成一个反向提交来抵消指定提交,不改写历史,适合已推送的分支。
git reflog查看 HEAD 移动记录,误 reset 后靠它找回丢失的提交。
git clean -nd预演删除未跟踪的文件与目录(不实际删除)。
git clean -fd删除未跟踪的文件与目录。
不进回收站,先用 -nd 确认。
git stash push -m "说明"把当前改动暂存起来,工作区回到干净状态。
git stash list查看所有 stash 记录。
git stash pop恢复最近一次 stash 并从列表中移除。
git stash apply stash@{1}恢复指定 stash 但保留记录。
git stash drop stash@{0}删除指定 stash 记录。
git stash -u连未跟踪文件一起暂存。
git log --oneline --graph --all以图形化单行方式查看所有分支的提交历史。
git log -p <file>查看某个文件的逐次改动内容。
git log --author="名字" --since="2 weeks ago"按作者和时间筛选提交。
git blame <file>逐行查看代码由谁在哪次提交引入。
git show <commit>查看某次提交的详细内容。
git bisect start二分查找引入 bug 的提交,配合 git bisect good/bad 使用。
git log -S"关键字"搜索哪次提交增删了包含该关键字的代码。
git tag列出所有标签。
git tag -a v1.0.0 -m "发布说明"创建带说明的附注标签。
git push origin v1.0.0推送指定标签到远端。
git push origin --tags推送所有本地标签。
git tag -d v1.0.0删除本地标签。
git push origin --delete v1.0.0删除远端标签。
git submodule update --init --recursive初始化并拉取所有子模块。
git worktree add ../dir <branch>为同一仓库再挂一个工作目录,可并行处理两个分支而不用切换。
git archive -o release.zip HEAD把当前提交导出为压缩包(不含 .git 目录)。
git gc --prune=now清理无用对象、压缩仓库体积。
git update-index --skip-worktree <file>忽略某个已跟踪文件的本地修改(如本地配置文件)。
危险操作提醒
git reset --hard会丢弃工作区与暂存区的未提交改动,执行前先git stash或git status确认。git push --force会覆盖远端历史,多人协作分支请改用--force-with-lease,它在远端有新提交时会拒绝推送。git clean -fd删除未跟踪文件且不进回收站,建议先用-n预演一遍。- 对已推送到共享分支的提交做 rebase / amend 会改写历史,其他人需要强制同步,务必先沟通。
功能介绍
Git命令速查把日常开发用得上的约七十条命令按仓库与配置、查看状态与历史、分支操作、提交与修改、撤销与回退、远程协作、储藏与暂存、标签与清理八类整理,每条给出命令原文与中文说明,可单独复制。整理时优先收录真正解决问题的命令组合而不是简单罗列,例如用git log看分支拓扑、用git diff看暂存区、用git reflog找回误删的提交、用git clean先预演再删除未跟踪文件。所有危险操作集中在独立的风险提示区并给出安全替代:强制推送应改用带lease的形式以避免覆盖同事的推送;git reset的hard模式会丢弃工作区改动且不可通过reflog恢复未提交内容;已推送的提交不要用rebase改写历史;git clean会永久删除未跟踪文件。
使用说明
1. 点击分类标签或使用搜索框按命令、关键字查找;2. 点击命令右侧的复制按钮直接粘贴到终端;3. 执行前先看说明,特别是撤销与回退类命令要区分是否影响工作区;4. 阅读页面底部的危险操作提示区,把强制推送改成带lease的形式是最值得养成的习惯;5. 不确定后果时先用git status与git log确认当前状态,删除类操作先用预演参数试跑;6. 误操作后第一时间执行git reflog,绝大多数已提交的内容都能找回。