Git 速查表

入门

启动新仓库

git init

克隆现有仓库

git clone <url>

准备提交

添加未追踪的文件或未暂存的更改

git add <file>

添加所有未追踪的文件和未暂存的更改

git add .

交互式选择要暂存的文件部分

git add -p

移动文件

git mv <old> <new>

删除文件

git rm <file>

告知 Git 忽略某个文件(不从硬盘删除)

git rm --cached <file>

取消暂存某个文件

git reset <file>

取消所有暂存

git reset

查看你添加的内容

git status

进行提交

进行提交(并打开文本编辑器填写备注)

git commit

进行提交

git commit -m 'message'

提交所有未暂存的更改

git commit -am 'message'

比较暂存区/未暂存的更改

比较所有已暂存和未暂存的更改

git diff HEAD

仅比较已暂存的更改

git diff --staged

仅比较未暂存的更改

git diff

比较提交

显示某次提交与父提交之间的差异

git show <commit>

比较两次提交

git diff <commit> <commit>

比较自某次提交以来单个文件的差异

git diff <commit> <file>

显示差异摘要

git diff <commit> --stat git show <commit> --stat

丢弃更改

删除单个文件未暂存的更改

git restore <file> git checkout <file>

删除单个文件所有已暂存和未暂存的更改

git restore --staged --worktree <file> git checkout HEAD <file>

删除所有已暂存和未暂存的更改

git reset --hard

删除未追踪的文件

git clean

“储藏(Stash)”所有已暂存和未暂存的更改

git stash

代码溯源

查看分支历史

git log main git log --graph main git log --oneline

显示修改过某文件的所有提交

git log <file>

显示修改过某文件的所有提交(包含重命名之前)

git log --follow <file>

查找添加或删除了某些文本的所有提交

git log -G banana

显示文件每一行最后是谁修改的

git blame <file>

恢复旧文件

获取来自其他提交的某个文件版本

git checkout <commit> <file> git restore <file> --source <commit>

添加远程仓库

git remote add <name> <url>

拉取更改

获取远程变更(但不合并到本地分支)

git fetch origin main

获取变更并变基当前分支

git pull --rebase

获取变更并合并到当前分支

git pull origin main git pull

Git 配置

设置配置选项

git config user.name 'Your Name'

全局设置选项

git config --global ...

添加别名

git config alias.st status

查看所有可能的配置选项

man git-config