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,更安全
评论区