🛠️

Git 命令速查表

按分类整理的 Git 命令参考手册,支持搜索过滤

⚙️ 初始配置

git init

在当前目录初始化一个新的 Git 仓库

git clone <url>

克隆远程仓库到本地

git config --global user.name "名字"

设置全局用户名

git config --global user.email "邮箱"

设置全局邮箱

git config --list

查看所有配置信息

git config --global core.editor "vim"

设置默认编辑器

git config --global alias.co checkout

设置命令别名

📝 基本操作

git status

查看工作区和暂存区的状态

git add <file>

将文件添加到暂存区

git add .

将所有修改的文件添加到暂存区

git commit -m "消息"

提交暂存区的文件并附上提交消息

git commit -am "消息"

添加并提交已跟踪的文件(跳过 add 步骤)

git diff

查看工作区与暂存区的差异

git diff --staged

查看暂存区与最近提交的差异

git diff <branch1>..<branch2>

比较两个分支之间的差异

git restore <file>

撤销工作区的修改(恢复到暂存区状态)

git restore --staged <file>

取消暂存(从暂存区移回工作区)

git rm <file>

删除文件并将删除操作添加到暂存区

git mv <old> <new>

重命名或移动文件

🌿 分支管理

git branch

列出所有本地分支

git branch -a

列出所有本地和远程分支

git branch <name>

创建新分支

git branch -d <name>

删除已合并的分支

git branch -D <name>

强制删除分支(即使未合并)

git checkout <branch>

切换到指定分支

git checkout -b <name>

创建并切换到新分支

git switch <branch>

切换分支(Git 2.23+ 推荐)

git switch -c <name>

创建并切换到新分支(Git 2.23+)

git branch -m <old> <new>

重命名分支

🔀 合并操作

git merge <branch>

将指定分支合并到当前分支

git merge --no-ff <branch>

使用非快进模式合并(保留分支历史)

git merge --abort

中止当前合并操作

git cherry-pick <commit>

将指定的提交应用到当前分支

git rebase <branch>

变基:将当前分支的提交重新应用到目标分支上

git rebase -i <commit>

交互式变基:可以编辑、合并、删除提交

git rebase --abort

中止变基操作

git rebase --continue

解决冲突后继续变基

🌐 远程仓库

git remote -v

查看所有远程仓库的 URL

git remote add <name> <url>

添加远程仓库

git remote remove <name>

移除远程仓库

git fetch <remote>

从远程仓库拉取数据(不合并)

git pull <remote> <branch>

拉取远程分支并合并到当前分支

git pull --rebase

使用变基方式拉取远程更新

git push <remote> <branch>

推送本地分支到远程仓库

git push -u origin <branch>

推送并设置上游分支(首次推送)

git push --force

强制推送(覆盖远程历史,谨慎使用)

git push --tags

推送所有标签到远程

📦 暂存管理

git stash

暂存当前工作区的修改

git stash save "描述"

暂存并添加描述信息

git stash list

查看所有暂存记录

git stash pop

恢复最近一次暂存并删除该暂存记录

git stash apply

恢复最近一次暂存但保留暂存记录

git stash apply stash@{n}

恢复指定的暂存记录

git stash drop stash@{n}

删除指定的暂存记录

git stash clear

删除所有暂存记录

git stash branch <name>

基于暂存内容创建新分支

📋 日志查看

git log

查看完整提交历史

git log --oneline

简洁模式查看提交历史(每行一条)

git log --graph

以图形方式查看分支合并历史

git log --oneline --graph --all

图形化显示所有分支的简洁历史

git log -n <数量>

只显示最近 N 条提交记录

git log --author="名字"

按作者筛选提交记录

git log --since="2 weeks ago"

查看最近两周的提交记录

git log <file>

查看指定文件的提交历史

git log -p <file>

查看指定文件的每次提交差异

git blame <file>

查看文件每一行最后是谁修改的

git show <commit>

查看某次提交的详细信息

git shortlog

按作者汇总提交记录

↩️ 撤销操作

git reset HEAD <file>

取消暂存指定文件

git reset --soft HEAD~1

撤销最后一次提交,保留修改在暂存区

git reset --mixed HEAD~1

撤销最后一次提交,保留修改在工作区

git reset --hard HEAD~1

撤销最后一次提交,丢弃所有修改(危险)

git revert <commit>

创建一个新提交来撤销指定提交(安全)

git revert -n <commit>

撤销指定提交但不自动提交

git reflog

查看所有操作记录(可用于恢复误删的提交)

git clean -fd

删除所有未跟踪的文件和目录

git clean -fdn

预览将要删除的未跟踪文件(不实际删除)

git commit --amend -m "新消息"

修改最后一次提交的消息

git commit --amend --no-edit

将暂存的修改追加到最后一次提交