Git 命令速查

Git 日常开发常用命令速查,支持搜索和一键复制

配置(4)

设置用户名

设置全局 Git 用户名

git config --global user.name "Your Name"

设置邮箱

设置全局 Git 邮箱

git config --global user.email "you@example.com"

查看配置

查看当前 Git 配置

git config --list

设置默认编辑器

设置 commit message 编辑器

git config --global core.editor "code --wait"

创建仓库(3)

初始化仓库

在当前目录创建 Git 仓库

git init

克隆远程仓库

克隆一个远程仓库到本地

git clone https://github.com/user/repo.git

克隆指定分支

克隆并切换到指定分支

git clone -b develop https://github.com/user/repo.git

基本操作(5)

查看状态

查看工作区和暂存区状态

git status

添加文件

将文件添加到暂存区

# 添加单个文件
git add file.txt
# 添加所有修改
git add .
# 添加所有 .js 文件
git add *.js

提交更改

将暂存区内容提交到仓库

git commit -m "feat: add new feature"

添加并提交

跳过 add,直接提交已跟踪文件的修改

git commit -am "fix: quick fix"

查看差异

查看文件修改内容

# 工作区与暂存区的差异
git diff
# 暂存区与上次提交的差异
git diff --staged
# 两个分支的差异
git diff main..develop

分支管理(7)

查看分支

查看本地和远程分支

# 本地分支
git branch
# 所有分支(含远程)
git branch -a
# 查看分支详情
git branch -v

创建分支

创建新分支

git branch feature/login

切换分支

切换到指定分支

git checkout develop
# 或(推荐)
git switch develop

创建并切换

创建新分支并立即切换

git checkout -b feature/login
# 或
git switch -c feature/login

合并分支

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

# 先切到目标分支
git switch main
# 合并 feature 分支
git merge feature/login

删除分支

删除已合并的分支

# 删除本地分支
git branch -d feature/login
# 强制删除
git branch -D feature/login
# 删除远程分支
git push origin --delete feature/login

变基 Rebase

将当前分支变基到目标分支

git rebase main

远程操作(4)

添加远程仓库

关联远程仓库地址

git remote add origin https://github.com/user/repo.git

查看远程仓库

查看已关联的远程仓库

git remote -v

推送到远程

将本地提交推送到远程

# 推送当前分支
git push
# 首次推送并设置上游
git push -u origin main

拉取远程更新

拉取并合并远程更新

# 拉取并合并
git pull
# 拉取但不合并
git fetch
# 拉取指定分支
git pull origin develop

撤销与回退(5)

撤销工作区修改

恢复文件到上次提交的状态

git checkout -- file.txt
# 或
git restore file.txt

取消暂存

将文件从暂存区移除

git reset HEAD file.txt
# 或
git restore --staged file.txt

修改上次提交

修改最近一次 commit 的信息或内容

git commit --amend -m "new message"

回退到指定提交

将 HEAD 移回到指定 commit

# 保留修改(默认)
git reset --soft HEAD~1
# 保留工作区
git reset --mixed HEAD~1
# 丢弃所有修改
git reset --hard HEAD~1

创建反向提交

生成一个撤销指定 commit 的新提交

git revert abc1234

暂存(4)

暂存当前修改

将未提交的修改临时保存

git stash

暂存并命名

保存并给一个描述

git stash save "work in progress"

查看暂存列表

查看所有暂存的修改

git stash list

恢复暂存

恢复最近一次暂存的修改

# 恢复并保留暂存记录
git stash apply
# 恢复并删除暂存记录
git stash pop

标签(3)

创建标签

为当前提交打标签

# 轻量标签
git tag v1.0.0
# 附注标签
git tag -a v1.0.0 -m "Release 1.0.0"

推送标签

将标签推送到远程

# 推送单个标签
git push origin v1.0.0
# 推送所有标签
git push origin --tags

查看标签

列出所有标签

git tag

查看信息(4)

查看提交日志

查看 commit 历史

# 简洁模式
git log --oneline
# 图形模式
git log --oneline --graph --all
# 最近 5 条
git log -5

查看文件修改历史

查看单个文件的提交历史

git log --follow -p file.txt

查看某次提交

查看指定 commit 的详细信息

git show abc1234

查看每行作者

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

git blame file.txt

高级操作(4)

Cherry-pick

将指定 commit 应用到当前分支

git cherry-pick abc1234

交互式 Rebase

合并/编辑/重排最近 N 个提交

git rebase -i HEAD~3

清理未跟踪文件

删除工作区中未跟踪的文件

# 预览
git clean -nd
# 执行
git clean -fd

二分查找 Bug

用二分法定位引入 Bug 的提交

git bisect start
git bisect bad          # 当前有bug
git bisect good v1.0.0  # 这个版本没bug
# Git 会自动切换版本,测试后标记 good/bad
git bisect reset         # 结束

相关工具