Git 命令大全:常用、高级与维护总结 (V3 - 更完整版)
本表格是 Git 命令的完整总结,涵盖了从基础操作、高级历史管理到仓库维护的所有重要命令。
I. 基础设置与文件操作 (Basic Workflow)
| 命令类别 | 命令 | 作用描述 (中文) |
|---|---|---|
| 设置与初始化 | git init |
在当前目录创建 Git 仓库。 |
git clone [url] |
克隆远程仓库。 | |
git config --global |
配置全局 Git 环境(如用户名、邮箱等)。 | |
| 状态与差异 | git status |
查看工作区和暂存区的状态。 |
git status -s |
简洁地显示工作区状态。 | |
git diff |
查看工作区与暂存区之间的差异 (未暂存的修改)。 | |
git diff --staged |
查看暂存区与上次提交之间的差异 (已暂存的修改)。 | |
| 暂存与提交 | git add [file] / . |
将文件或所有更改添加到暂存区。 |
git commit -m "message" |
提交暂存区的更改到本地仓库。 | |
| 文件管理 | git rm [file] |
从工作区和暂存区删除文件,并记录删除。 |
git rm --cached [file] |
仅从暂存区和仓库中删除,保留工作区文件。 | |
git mv [old] [new] |
移动或重命名文件。 |
II. 分支管理与远程协作 (Branching & Remote)
| 命令类别 | 命令 | 作用描述 (中文) |
|---|---|---|
| 分支创建与切换 | git branch |
列出本地分支。 |
git branch [name] |
创建新分支。 | |
git branch -d [name] |
删除已合并的本地分支。 | |
git switch [branch] |
切换到指定分支(推荐)。 | |
git switch -c [new] |
创建并切换到新分支(推荐)。 | |
git checkout -b [new] |
创建并切换到新分支(旧用法)。 | |
| 合并与中止 | git merge [branch] |
将指定分支合并到当前分支。 |
git merge --abort |
中止正在进行的合并操作。 | |
git rebase --abort |
中止正在进行的变基操作。 | |
| 远程操作 | git remote -v |
查看已配置的远程仓库。 |
git remote add [name] [url] |
添加新的远程仓库别名。 | |
git remote rename [old] [new] |
重命名远程仓库别名。 | |
git remote set-url [name] [new-url] |
修改远程仓库的 URL。 | |
git fetch [remote] |
下载远程数据,但不合并。 | |
git pull |
拉取远程更改并自动合并。 | |
git push |
推送本地提交到远程仓库。 | |
git push -u [remote] [branch] |
设置上游跟踪分支并推送。 | |
git push --force |
强制推送(覆盖远程历史,需谨慎)。 |
III. 撤销、修改与高级历史操作 (Advanced History)
| 命令类别 | 命令 | 作用描述 (中文) |
|---|---|---|
| 工作区/暂存区撤销 | git restore [file] |
撤销工作区文件的修改。 |
git restore --staged [file] |
取消暂存文件(等同于 git reset HEAD [file])。 |
|
git commit --amend |
修改上一次提交的提交信息或内容。 | |
| 版本回退 | git reset --soft [commit] |
软回退:HEAD 移动,保留工作区和暂存区。 |
git reset --mixed [commit] |
默认回退:HEAD 移动,取消暂存,保留工作区。 | |
git reset --hard [commit] |
强制回退:丢弃所有本地更改(危险)。 | |
git revert [commit] |
反转提交:创建新的提交来撤销指定提交的更改(安全)。 | |
| 历史优化 | git rebase [branch] |
变基:保持提交历史线性。 |
git rebase -i [commit-id] |
交互式变基:用于编辑、合并、重排提交历史。 | |
git cherry-pick [commit-id] |
拣选:将指定的单个提交应用到当前分支。 | |
| 多工作区 (Worktree) | git worktree add [path] [branch] |
添加新的工作区,允许在不同分支上同时工作。 |
git worktree list |
列出所有已配置的工作区。 | |
git worktree remove [path] |
移除指定的工作区。 | |
| 临时保存 (Stash) | git stash |
储藏:临时保存工作区和暂存区的修改。 |
git stash list |
查看储藏列表。 | |
git stash pop |
恢复并删除最近一次储藏。 | |
git stash apply |
恢复储藏 的修改,但保留在储藏列表中。 | |
git stash drop |
删除储藏列表中的一个储藏。 | |
| 查找与调试 | git log --oneline |
以简洁模式(一行)查看提交历史。 |
git log -p |
查看提交历史及其对应的文件差异。 | |
git reflog |
查看 HEAD 的所有历史移动记录。 | |
git bisect |
二分查找:自动化地查找引入 Bug 的提交。 | |
git describe |
通过最近的标签来描述最近一次提交。 |
IV. 维护、标签与底层命令 (Maintenance & Plumbing)
| 命令类别 | 命令 | 作用描述 (中文) |
|---|---|---|
| 标签管理 | git tag [name] |
创建轻量标签。 |
git tag -a [name] -m "msg" |
创建附注标签(推荐)。 | |
git push --tags |
推送所有标签到远程。 | |
| 子模块 | git submodule add [url] |
添加子模块。 |
git submodule update --init --recursive |
初始化并递归更新所有子模块内容。 | |
| 仓库维护 | git clean -df |
彻底删除未跟踪的文件和目录。 |
git gc |
垃圾回收:清理不必要的对象文件,优化仓库。 | |
git archive [branch] |
为指定分支创建一个压缩存档文件(如 .zip 或 .tar.gz)。 |
|
| 底层操作 | git cat-file -p [hash] |
查看 Git 对象的底层内容。 |
git hash-object [file] |
计算文件内容的哈希值。 | |
| 辅助 | git check-ignore |
检查文件是否被 .gitignore 忽略。 |
git help [command] |
显示指定命令的帮助手册。 | |
git shortlog |
按作者分组显示提交摘要。 |
提示 : Git 命令功能强大,尤其是 reset --hard 和 push --force,请在操作前仔细确认,以免丢失重要代码!