Git 常用命令 - 码剑客

覆盖配置、提交、分支、远程协作、撤销回滚与历史排查的高频命令,含改写公共历史的注意事项。

Git 2.28+更新于 2026-10-29共 33 条

配置与初始化

设置全局提交用户名

git config --global user.name "Zhang San"

设置全局提交邮箱,需与托管平台一致

git config --global user.email "dev@example.com"

初始化仓库并指定主分支为 main

git init -b main

为常用日志命令配置别名 lg

git config --global alias.lg "log --oneline --graph --decorate"

日常提交

以精简格式查看当前分支与改动

git status -sb

交互式挑选代码块加入暂存区

git add -p

提交暂存区内容并填写规范信息

git commit -m "feat: add login page"

把新改动并入上一次提交且不改信息

git commit --amend --no-edit

提交已推送后再改写,需要 force push,团队分支慎用

分支管理

创建并切换到新分支

git switch -c feat/login

切换到已有的主分支

git switch main

列出本地分支及上游跟踪关系

git branch -vv

删除已合并的本地分支,-D 强制删除

git branch -d feat/login

远程协作

浅克隆,只拉取最近一次提交

git clone --depth 1 https://github.com/user/repo.git

拉取所有远程更新并清理已删分支

git fetch --all --prune

以变基方式拉取,保持提交历史线性

git pull --rebase origin main

推送新分支并设置上游跟踪

git push -u origin <BRANCH>
高危

强推覆盖远端分支,可能冲掉他人提交

git push --force-with-lease origin <BRANCH>

--force-with-lease 在远端有新人提交时直接拒绝,比 --force 安全

撤销与回滚

高危

丢弃工作区未提交改动,无法恢复

git restore src/App.vue

把文件移出暂存区,保留工作区改动

git restore --staged src/App.vue

撤销最近一次提交,改动留在暂存区

git reset --soft HEAD~1
高危

回退到上一提交,丢弃暂存区与工作区改动

git reset --hard HEAD~1

已推送到公共分支时改用 git revert,避免改写历史

生成一次反向提交,安全撤销已推送内容

git revert <COMMIT>

把指定提交移植到当前分支

git cherry-pick <COMMIT>

暂存当前改动并加备注,便于切分支

git stash push -m "wip: login"

恢复用 git stash pop,查看列表用 git stash list

历史排查

图形化查看所有分支的提交历史

git log --oneline --graph --all --decorate

查看指定行范围的最后修改人与提交

git blame -L 20,40 src/App.vue

搜索引入或删除了某字符串的提交

git log -S "TODO" --oneline

二分查找引入缺陷的提交

git bisect start
git bisect bad
git bisect good v1.0.0

定位完成后执行 git bisect reset 回到原分支

查看 HEAD 移动记录,误 reset 后可找回

git reflog -n 20

标签与版本

列出匹配模式的标签

git tag -l "v1.*"

创建带说明的附注标签

git tag -a v1.2.0 -m "release 1.2.0"

推送单个标签,普通 push 不会带标签

git push origin v1.2.0
高危

删除远端标签,依赖它的发布流程会失败

git push origin --delete v1.2.0

本地同步删除用 git tag -d v1.2.0

相关工具

本网站使用 Cookie 以确保您在我们的网站上获得最佳体验。 隐私政策.