Git 常用命令
2026/1/16大约 2 分钟
Git 常用命令
配置
# 全局配置
git config --global user.name "Your Name"
git config --global user.email "email@example.com"
# 查看配置
git config --list
# 配置别名
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.lg "log --oneline --graph"仓库操作
# 初始化仓库
git init
# 克隆仓库
git clone <url>
git clone <url> <directory>
git clone -b <branch> <url> # 克隆指定分支
# 关联远程仓库
git remote add origin <url>
git remote -v # 查看远程仓库
git remote remove origin # 移除远程仓库基本操作
# 查看状态
git status
git status -s # 简洁模式
# 添加到暂存区
git add <file>
git add . # 添加所有
git add -p # 交互式添加
# 提交
git commit -m "message"
git commit -am "message" # add + commit
git commit --amend # 修改最后一次提交
# 查看差异
git diff # 工作区 vs 暂存区
git diff --staged # 暂存区 vs 最新提交
git diff <commit1> <commit2> # 两个提交之间
# 查看日志
git log
git log --oneline # 简洁模式
git log --graph # 图形化
git log -p # 显示差异
git log --author="name" # 按作者筛选
git log --since="2024-01-01" # 按时间筛选撤销操作
# 撤销工作区修改
git checkout -- <file>
git restore <file> # Git 2.23+
# 撤销暂存
git reset HEAD <file>
git restore --staged <file> # Git 2.23+
# 撤销提交(保留修改)
git reset --soft HEAD^
# 撤销提交(丢弃修改)
git reset --hard HEAD^
# 撤销某次提交(生成新提交)
git revert <commit>暂存工作
# 暂存当前工作
git stash
git stash save "message"
# 查看暂存列表
git stash list
# 恢复暂存
git stash pop # 恢复并删除
git stash apply # 恢复不删除
git stash apply stash@{0} # 恢复指定
# 删除暂存
git stash drop stash@{0}
git stash clear # 清空所有标签
# 创建标签
git tag v1.0.0
git tag -a v1.0.0 -m "Release 1.0.0" # 附注标签
git tag v1.0.0 <commit> # 给指定提交打标签
# 查看标签
git tag
git show v1.0.0
# 推送标签
git push origin v1.0.0
git push origin --tags # 推送所有标签
# 删除标签
git tag -d v1.0.0
git push origin :refs/tags/v1.0.0 # 删除远程标签远程操作
# 拉取
git fetch # 获取远程更新
git pull # fetch + merge
git pull --rebase # fetch + rebase
# 推送
git push
git push -u origin main # 首次推送并关联
git push --force # 强制推送(慎用)
git push --force-with-lease # 安全强推
# 查看远程分支
git branch -r
git branch -a # 所有分支查找问题
# 查找引入 bug 的提交
git bisect start
git bisect bad # 当前版本有 bug
git bisect good <commit> # 这个版本没问题
# Git 会二分查找,测试后标记 good/bad
git bisect reset # 结束
# 查看文件每行的最后修改
git blame <file>
# 搜索提交
git log --grep="keyword"
git log -S "code" # 搜索代码变更