Git 速查表
可搜索、可打印的 Git 参考手册——配置、分支、合并、变基、远程仓库、暂存、标签以及撤销更改。免费。
设置与配置
10git config --global user.name "Jane Doe"
设置提交时附带的姓名
git config --global user.email "jane@example.com"
设置提交时附带的邮箱
git config --global init.defaultBranch main
让新仓库默认从 "main" 分支开始
git config --global core.editor "code --wait"
将 VS Code 设为默认 Git 编辑器
git config --global pull.rebase true
拉取时变基而非合并
git config --global alias.co checkout
创建快捷别名(git co)
git config --global --list
列出所有全局配置值
git config user.email
打印当前仓库的邮箱
git config --global color.ui auto
启用彩色命令行输出
git help <command>
打开命令的手册页
创建与克隆仓库
9git init
在当前文件夹初始化新仓库
git init my-project
在新目录中创建新仓库
git clone https://example.com/repo.git
通过 HTTPS 克隆远程仓库
git clone git@example.com:user/repo.git
通过 SSH 克隆远程仓库
git clone <url> my-dir
克隆到指定目录名
git clone --depth 1 <url>
仅含最新提交的浅克隆
git clone --branch dev <url>
克隆并检出指定分支
git clone --recurse-submodules <url>
克隆并初始化所有子模块
git remote add origin <url>
为现有本地仓库添加远程
暂存与提交
11git add file.txt
暂存单个文件以待下次提交
git add .
暂存当前目录的所有更改
git add -A
暂存所有更改(含删除)
git add -p
交互式暂存选定代码块
git commit -m "Add login form"
提交暂存更改并附消息
git commit -am "Fix typo"
一步暂存已跟踪文件并提交
git commit --amend
修改最近一次提交
git commit --amend --no-edit
将暂存更改加入上次提交
git rm file.txt
删除文件并暂存该删除
git mv old.txt new.txt
重命名或移动文件并暂存
git reset file.txt
取消暂存文件但保留更改
分支
10git branch
列出所有本地分支
git branch -a
列出本地与远程跟踪分支
git switch -c feature/login
创建并切换到新分支
git switch main
切换到现有分支
git checkout -b hotfix
创建并切换分支的经典方式
git branch -m old-name new-name
重命名分支
git branch -d feature/login
删除已合并的本地分支
git branch -D feature/login
强制删除未合并的本地分支
git push origin --delete feature/login
删除远程上的分支
git switch -
切回上一个分支
合并与变基
10git merge feature/login
将分支合并到当前分支
git merge --no-ff feature/login
合并并始终创建合并提交
git merge --squash feature/login
将分支合并为一次暂存更改
git merge --abort
取消存在冲突的合并
git rebase main
将当前分支提交重放到 main 上
git rebase -i HEAD~3
交互式编辑最近 3 次提交
git rebase --continue
解决冲突后继续变基
git rebase --abort
取消进行中的变基
git cherry-pick <hash>
将单个提交应用到当前分支
git mergetool
启动工具解决合并冲突
远程与同步
11git remote -v
列出已配置的远程及其 URL
git remote add upstream <url>
添加名为 upstream 的第二个远程
git remote set-url origin <url>
更改现有远程的 URL
git fetch
下载远程更改但不合并
git fetch --all --prune
拉取所有远程并清除过期分支
git pull
拉取并整合远程更改
git pull --rebase
拉取并将本地提交变基到顶部
git push
将本地提交上传到远程
git push -u origin main
推送并设置上游跟踪分支
git push --force-with-lease
安全强制推送,不覆盖他人提交
git push origin --tags
将所有本地标签推送到远程
检查与比较
10git status
显示已暂存、未暂存和未跟踪文件
git status -s
以紧凑短格式显示状态
git diff
显示相对索引的未暂存更改
git diff --staged
显示已暂存待提交的更改
git diff main..feature
比较两个分支
git diff HEAD~1 HEAD
比较最近提交与其父提交
git show <hash>
显示某次提交的详情与差异
git show HEAD:file.txt
显示某次提交中的文件内容
git log --stat
显示提交及变更文件摘要
git shortlog -sn
按作者分组统计提交数
撤销更改
10git restore file.txt
丢弃文件的未暂存更改
git restore --staged file.txt
取消暂存文件但保留更改
git restore --source=HEAD~1 file.txt
从早期提交恢复文件
git checkout -- file.txt
丢弃本地更改的经典方式
git reset --soft HEAD~1
撤销上次提交,保留暂存更改
git reset --mixed HEAD~1
撤销上次提交,更改不暂存
git reset --hard HEAD~1
撤销上次提交并丢弃更改
git revert <hash>
创建一个撤销某提交的新提交
git clean -fd
删除未跟踪的文件和目录
git clean -nd
预览 clean 将删除的内容
贮藏
10git stash
保存未提交更改并清理工作区
git stash push -m "wip"
贮藏更改并附描述消息
git stash -u
贮藏并包含未跟踪文件
git stash list
列出所有贮藏的更改集
git stash show -p
显示最新贮藏的差异
git stash apply
重新应用最新贮藏并保留
git stash pop
重新应用最新贮藏并删除
git stash apply stash@{2}
按索引重新应用指定贮藏
git stash drop stash@{0}
删除单个贮藏条目
git stash clear
删除所有贮藏条目
标签
9git tag
列出所有标签
git tag v1.0.0
在 HEAD 创建轻量标签
git tag -a v1.0.0 -m "Release 1.0.0"
创建带消息的附注标签
git tag -a v1.0.0 <hash>
为指定的过往提交打标签
git show v1.0.0
显示标签详情
git push origin v1.0.0
将单个标签推送到远程
git push origin --tags
将所有本地标签推送到远程
git tag -d v1.0.0
在本地删除标签
git push origin --delete v1.0.0
删除远程上的标签
日志与历史
12git log
显示完整提交历史
git log --oneline
显示每提交一行的紧凑日志
git log --oneline --graph --all
以 ASCII 图形展示分支
git log -p
显示带差异的提交历史
git log --author="Jane"
按作者筛选历史
git log --since="2 weeks ago"
按日期范围筛选历史
git log --pretty=format:"%h %an %s"
自定义日志输出格式
git blame file.txt
显示每行最后修改者
git reflog
显示 HEAD 的移动历史
git bisect start
开始二分查找问题提交
git bisect good <hash>
二分查找中标记提交为正常
git bisect bad
将当前提交标记为有问题
没有条目匹配“:q”。
需要帮助?
使用此工具时遇到问题?请告诉我们的团队。