Git 常用命令速查表
| 命令 |
参数/选项 |
说明 |
| 初始化 & 克隆 |
|
|
git init |
|
初始化新仓库 |
git clone |
[url] |
克隆远程仓库 |
|
--depth [n] |
浅克隆(仅下载最近 n 次提交) |
| 状态与差异 |
|
|
git status |
-s |
简洁模式输出 |
git diff |
|
显示未暂存的修改 |
|
--staged / --cached |
显示已暂存的修改 |
|
[commit1] [commit2] |
比较两次提交差异 |
| 暂存更改 |
|
|
git add |
[file] |
添加指定文件到暂存区 |
|
. |
添加所有修改文件 |
|
-p / --patch |
交互式选择修改片段 |
| 提交更改 |
|
|
git commit |
-m "message" |
提交并添加提交信息 |
|
-a |
自动添加已跟踪文件并提交(跳过 git add) |
|
--amend |
修改最后一次提交 |
| 分支管理 |
|
|
git branch |
|
列出本地分支 |
|
[branch-name] |
创建新分支 |
|
-d [branch] |
删除分支 |
|
-D [branch] |
强制删除分支(即使未合并) |
|
-m [old] [new] |
重命名分支 |
git checkout |
[branch] |
切换分支 |
|
-b [new-branch] |
创建并切换到新分支 |
|
[file] |
丢弃工作区文件修改 |
git switch |
[branch] |
切换分支(Git 2.23+) |
|
-c [new-branch] |
创建并切换到新分支(Git 2.23+) |
| 合并与变基 |
|
|
git merge |
[branch] |
合并指定分支到当前分支 |
|
--no-ff |
禁用快进合并(保留合并历史) |
|
--abort |
终止合并冲突解决 |
git rebase |
[branch] |
变基当前分支到目标分支 |
|
-i [commit] |
交互式变基(修改提交历史) |
| 撤销操作 |
|
|
git restore |
[file] |
丢弃工作区修改(Git 2.23+) |
|
--staged [file] |
取消暂存文件(Git 2.23+) |
git reset |
HEAD~[n] |
回退到前 n 次提交 |
|
--soft |
保留工作区和暂存区 |
|
--mixed (默认) |
保留工作区,重置暂存区 |
|
--hard |
丢弃所有修改(慎用!) |
git revert |
[commit] |
创建撤销指定提交的新提交 |
| 远程操作 |
|
|
git remote |
-v |
查看远程仓库信息 |
|
add [name] [url] |
添加远程仓库 |
|
rm [name] |
移除远程仓库 |
git fetch |
[remote] |
下载远程仓库更新(不自动合并) |
|
--all |
获取所有远程仓库更新 |
git pull |
[remote] [branch] |
获取并合并远程更改(= fetch + merge) |
|
--rebase |
使用变基代替合并 |
git push |
[remote] [branch] |
推送本地提交到远程 |
|
-u |
设置上游分支(后续可省略参数) |
|
--force / -f |
强制覆盖远程分支(慎用!) |
|
--force-with-lease |
安全强制推送(检查远程分支状态) |
|
--tags |
推送所有标签 |
| 日志与历史 |
|
|
git log |
--oneline |
简洁提交历史(单行显示) |
|
--graph |
图形化显示分支拓扑 |
|
-p |
显示具体修改内容 |
|
-[n] |
显示最近 n 条记录 |
git reflog |
|
显示所有操作历史(包括被重置的提交) |
| 储藏更改 |
|
|
git stash |
|
临时储藏工作区修改 |
|
save "message" |
储藏并添加描述信息 |
|
list |
查看储藏列表 |
|
pop |
恢复最近储藏并删除 |
|
apply stash@{n} |
恢复指定储藏(不删除) |
|
drop stash@{n} |
删除指定储藏 |
| 标签管理 |
|
|
git tag |
|
列出所有标签 |
|
[tagname] |
创建轻量标签 |
|
-a [tagname] -m "msg" |
创建附注标签(含注释) |
|
-d [tagname] |
删除标签 |
|
push [remote] [tagname] |
推送单个标签到远程 |
|
push [remote] --tags |
推送所有标签到远程 |
| 高级操作 |
|
|
git cherry-pick |
[commit] |
将指定提交应用到当前分支 |
git bisect |
start |
启动二分查找定位问题提交 |
|
good [commit] |
标记正常提交 |
|
bad [commit] |
标记问题提交 |
git submodule |
add [url] [path] |
添加子模块 |
|
update --init |
初始化并更新子模块 |
常用组合示例
# 创建并切换到新分支
git checkout -b feature-new
# 安全强制推送(推荐)
git push origin main --force-with-lease
# 交互式变基(修改最近3次提交)
git rebase -i HEAD~3
# 撤销工作区修改
git restore README.md
# 查看简洁状态和提交历史
git status -s
git log --oneline --graph -5