Git 速查表
最后更新
安装后的配置
一次性设置,让你的提交署上正确的作者信息。
| 命令 | 作用 |
|---|---|
git config --global user.name "Ada" | 设置提交时使用的名字 |
git config --global user.email you@x.com | 设置提交时使用的邮箱 |
git config --list | 显示当前的全部配置 |
git config --global init.defaultBranch main | 把新仓库的第一个分支命名为 main |
git config --global core.editor "code --wait" | 设置默认编辑器 |
git --version | 输出已安装的 Git 版本 |
创建与克隆仓库
新建一个仓库,或者复制一个已有的仓库。
| 命令 | 作用 |
|---|---|
git init | 在当前文件夹中创建新仓库 |
git clone <url> | 把远程仓库复制到本地 |
git clone <url> mydir | 克隆到指定名称的文件夹 |
git clone --depth 1 <url> | 浅克隆(只取最新一次提交) |
git clone -b dev <url> | 克隆并检出 dev 分支 |
暂存与提交
把改动记录到项目历史中。
| 命令 | 作用 |
|---|---|
git add file.txt | 暂存一个文件 |
git add . | 暂存当前目录下的所有改动 |
git add -p | 交互式地暂存选中的代码块 |
git commit -m "message" | 提交已暂存的改动 |
git commit -am "message" | 暂存已跟踪的文件并提交 |
git commit --amend | 修改最近一次提交 |
git rm file.txt | 删除文件并暂存这次删除 |
分支
在互不干扰的环境中开发改动。
| 命令 | 作用 |
|---|---|
git branch | 列出本地分支 |
git branch feature | 创建新分支 |
git switch feature | 切换到已有分支 |
git switch -c feature | 一步完成创建并切换 |
git checkout feature | 切换分支的旧写法 |
git branch -d feature | 删除已合并的分支 |
git branch -m newname | 重命名当前分支 |
合并与 rebase
把两个分支上的工作合到一起。
| 命令 | 作用 |
|---|---|
git merge feature | 把 feature 合并到当前分支 |
git merge --no-ff feature | 始终创建一个合并提交 |
git rebase main | 把你的提交重放到 main 之上 |
git rebase -i HEAD~3 | 交互式地编辑最近 3 次提交 |
git rebase --continue | 解决冲突后继续 rebase |
git rebase --abort | 取消正在进行的 rebase |
git cherry-pick <hash> | 把某一次提交应用到当前分支 |
远程仓库(push、pull、fetch)
让本地仓库与 GitHub 等远程仓库保持同步。
| 命令 | 作用 |
|---|---|
git remote -v | 列出已配置的远程仓库 |
git remote add origin <url> | 关联一个名为 origin 的远程仓库 |
git fetch | 下载远程改动,但不合并 |
git pull | 拉取并合并远程分支 |
git push | 把提交推送到远程仓库 |
git push -u origin main | 推送并设置上游分支 |
git push origin --delete feature | 删除远程分支 |
查看状态(status、log、diff)
看看改了什么、现在是什么情况。
| 命令 | 作用 |
|---|---|
git status | 显示已暂存、未暂存和未跟踪的文件 |
git log | 显示提交历史 |
git log --oneline --graph | 带分支图的精简历史 |
git diff | 未暂存的改动与暂存区的差异 |
git diff --staged | 已暂存的改动与最近一次提交的差异 |
git show <hash> | 显示某一次提交的改动 |
git blame file.txt | 显示每一行最后是谁改的 |
撤销改动
安全地挽回失误。
| 命令 | 作用 |
|---|---|
git restore file.txt | 丢弃文件中未暂存的改动 |
git restore --staged file.txt | 取消暂存文件(保留改动) |
git reset --soft HEAD~1 | 撤销最近一次提交,改动保留在暂存区 |
git reset --hard HEAD~1 | 撤销最近一次提交并丢弃改动 |
git revert <hash> | 新建一次提交来撤销另一次提交 |
git stash | 把改动暂时收起来,稍后再用 |
git stash pop | 重新应用最近一次 stash |
你会用到的每条 Git 命令,全都在这一页。这份 Git 速查表是日常版本控制的快速参考:配置 Git、暂存和提交、创建分支、合并与 rebase、与远程仓库同步,以及撤销误操作。
这些都是标准 Git 命令,在 Linux、macOS 和 Windows 上用法完全一样。需要什么就复制什么,也可以在终端在线编辑器里直接试试:浏览器里就有一个真正的 shell,无需安装任何东西。
Git 速查表常见问题
这份 Git 速查表免费吗?
免费。这份 Git 速查表完全免费,无需注册。把它加入书签,需要查分支、提交或撤销改动的命令时随时回来看。
merge 和 rebase 有什么区别?
git merge 通过创建一个新的合并提交把两个分支连在一起,完整保留两边原本的历史。git rebase 则把你的提交逐个重放到另一个分支之上,得到一条没有合并提交的线性历史。merge 安全、不会破坏历史;rebase 让历史更整洁,但会改写提交,所以不要对别人已经拉取过的分支执行 rebase。如何在 Git 中撤销一次提交?
git reset --soft HEAD~1 会撤销最近一次提交,但把改动保留在暂存区;git reset --hard HEAD~1 则会彻底丢弃这些改动。对于已经共享出去的提交,用 git revert <hash> 新建一次提交来抵消它,不会改写历史。可以在线练习 Git 命令吗?
可以。打开终端在线编辑器,就能在浏览器里的真实 shell 中运行 Git 命令,无需安装任何东西。想系统地学,Coddy 免费的交互式 Git 课程会带你一步步从第一次提交学到分支、合并和远程仓库。
这份速查表适合初学者吗?
适合。内容从配置和提交(日常基础)排到 rebase 和撤销改动,第一天就能用上前面的部分,再逐步掌握进阶的工作流程。