Git 常用命令合集

一、配置相关

# 设置用户名和邮箱(全局)
git config --global user.name "Your Name"
git config --global user.email "[email protected]"

# 查看所有配置
git config --list

二、创建与获取仓库

# 在当前目录初始化仓库
git init

# 从远程仓库克隆
git clone https://github.com/user/repo.git
git clone [email protected]:user/repo.git

三、查看状态与比较差异

# 查看当前状态(修改了什么、哪些在暂存区)
git status

# 查看工作区与暂存区的差异
git diff

# 查看暂存区与最近一次提交的差异
git diff --cached

四、添加与提交

# 添加单个文件到暂存区
git add file.txt

# 添加当前目录所有修改
git add .

# 提交(-m 后面是提交说明)
git commit -m "feat: add new feature"

# 修改最近一次提交信息(未推送时常用)
git commit --amend

五、查看提交历史

# 查看提交历史(详细)
git log

# 单行显示历史(更紧凑)
git log --oneline

# 查看某个文件的修改历史
git log file.txt

六、分支操作

# 查看本地分支
git branch

# 创建新分支(基于当前分支)
git branch dev

# 切换到分支
git checkout dev

# 创建并切换到新分支(常用)
git checkout -b dev

# 删除本地分支
git branch -d dev        # 安全删除(有未合并会失败)
git branch -D dev        # 强制删除

新版 Git 也可以用 git switch 更直观:

git switch dev           # 切换分支
git switch -c dev        # 创建并切换新分支

七、合并与冲突

# 切换到目标分支(要被合并到的分支)
git checkout main

# 把 dev 分支合并到当前分支
git merge dev

发生冲突时:

  1. 编辑冲突文件,手动保留正确内容
  2. 然后:
git add .
git commit      # 完成合并

八、远程仓库操作

# 查看当前远程仓库
git remote -v

# 添加远程仓库
git remote add origin [email protected]:user/repo.git

# 修改远程地址
git remote set-url origin [email protected]:user/new-repo.git

九、推送与拉取

# 首次推送当前分支到远程,并设置跟踪
git push -u origin main

# 推送当前分支
git push

# 从远程拉取并合并
git pull

# 从远程获取最新记录(不自动合并)
git fetch

十、暂存现场(stash)

# 暂存当前未提交的修改
git stash

# 带说明的 stash
git stash save "WIP: something"

# 查看所有 stash
git stash list

# 应用最近一次 stash(保留记录)
git stash apply

# 应用并删除最近一次 stash
git stash pop

十一、撤销与回退

# 丢弃工作区对某个文件的修改(回到最近一次提交)
git checkout -- file.txt

# 撤回暂存区中的文件到工作区
git reset file.txt

# 回退到某次提交(保留修改到暂存区)
git reset --soft <commit_id>

# 回退到某次提交(修改回到工作区)
git reset --mixed <commit_id>    # 默认

# 回退到某次提交(彻底丢弃之后的修改)
git reset --hard <commit_id>

<commit_id> 可以通过 git loggit log --oneline 查看。

十二、撤销某个已提交的改动(revert)

# 生成一个新的提交,用来“反做”指定提交的修改
git revert <commit_id>

适合已经推到远程、不能直接改历史的情况。

十三、标签(Tag)

# 打轻量标签
git tag v1.0.0

# 打附注标签(带说明)
git tag -a v1.0.0 -m "Release version 1.0.0"

# 查看所有标签
git tag

# 推送某个标签
git push origin v1.0.0

# 推送所有标签
git push origin --tags

十四、挑选提交(cherry-pick)

# 把某个提交“复制”到当前分支
git cherry-pick <commit_id>

适合从其他分支“捞”出某个修复或功能。

十五、安全网:reflog

# 查看所有 HEAD 变动记录(包括 reset 等操作)
git reflog

当你不小心 reset –hard、删错东西时,可以通过 reflog 找回之前的提交 ID,再 reset 回去。

十六、超精简日常命令清单

# 状态 & 历史
git status
git log --oneline

# 常规提交流程
git add .
git commit -m "message"
git push

# 更新代码
git pull

# 分支
git branch
git checkout -b feature/login
git checkout main
git merge feature/login

# 撤销
git checkout -- file.txt
git reset --hard HEAD