Git 常用命令速查手册

仓库初始化和配置

# 初始化仓库
git init

# 配置用户信息
git config --global user.name "你的名字"
git config --global user.email "你的邮箱"

# 克隆远程仓库
git clone <仓库地址>

日常工作命令

# 查看仓库状态
git status

# 添加文件到暂存区
git add .                    # 添加所有文件
git add <文件名>             # 添加指定文件

# 提交更改
git commit -m "提交说明"
git commit -am "提交说明"    # 合并 add 和 commit 操作

# 拉取远程更新
git pull                     # 拉取并合并远程更新
git pull --rebase           # 使用 rebase 方式拉取更新
git pull -f                 # 强制拉取(会覆盖本地修改)
git fetch --all && git reset --hard origin/<分支名>  # 强制覆盖本地代码

# 推送到远程
git push                     # 推送到远程仓库
git push -u origin master    # 首次推送并设置上游分支
git push -f                 # 强制推送(危险操作!)
git push --force-with-lease # 安全的强制推送(建议使用这个)

分支操作命令

# 查看分支
git branch                   # 查看本地分支
git branch -r               # 查看远程分支
git branch -a               # 查看所有分支

# 创建分支
git branch <分支名>          # 创建新分支
git checkout -b <分支名>     # 创建并切换到新分支

# 切换分支
git checkout <分支名>
git switch <分支名>          # Git 2.23+ 新命令

# 合并分支
git merge <分支名>
git rebase <分支名>

# 删除分支
git branch -d <分支名>       # 删除本地分支
git push origin -d <分支名>  # 删除远程分支

撤销和回退操作

# 撤销工作区修改
git checkout -- <文件名>
git restore <文件名>         # Git 2.23+ 新命令

# 撤销暂存区修改
git reset HEAD <文件名>
git restore --staged <文件名>

# 版本回退
git reset --hard HEAD^       # 回退到上一个版本
git reset --hard <提交ID>    # 回退到指定版本

# 撤销提交
git revert <提交ID>         # 创建新提交来撤销某次提交

暂存和查看命令

# 暂存当前修改
git stash                    # 暂存修改
git stash save "备注"        # 添加备注暂存
git stash list              # 查看暂存列表
git stash pop               # 恢复最近的暂存
git stash apply stash@{n}   # 恢复指定的暂存

# 查看历史
git log                     # 查看提交历史
git log --oneline          # 单行显示提交历史
git log -p <文件名>         # 查看指定文件的修改历史
git blame <文件名>          # 查看文件的每一行是谁修改的

# 查看差异
git diff                    # 查看工作区和暂存区的差异
git diff --staged          # 查看暂存区和最新提交的差异
git diff <分支名> <分支名>   # 查看两个分支的差异

远程仓库操作

# 远程仓库
git remote -v               # 查看远程仓库
git remote add origin <地址> # 添加远程仓库
git remote remove origin    # 删除远程仓库

# 标签管理
git tag                     # 查看标签
git tag <标签名>            # 创建标签
git tag -d <标签名>         # 删除标签
git push origin <标签名>    # 推送标签到远程

高级技巧

# 清理仓库
git clean -df              # 删除所有未跟踪的文件和目录

# 储藏修改
git stash                  # 储藏当前修改
git stash pop             # 恢复储藏的修改

# 查找内容
git grep "查找的字符串"     # 在代码中搜索

# 保存凭证
git config --global credential.helper store  # 保存用户名密码

# 强制操作注意事项
# 1. git push -f 会强制覆盖远程分支,可能导致其他人的提交丢失
# 2. git pull -f 会强制覆盖本地修改,请确保本地修改已备份
# 3. 建议使用 git push --force-with-lease 代替 git push -f,更安全