跳到主要内容
  1. 文章/
  2. Git 常用命令

Git 常用命令

📦 基础配置 #

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

# 查看配置
git config --list

🚀 基础工作流 #

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

# 查看状态
git status

# 添加到暂存区
git add <文件名>          # 添加单个文件
git add .               # 添加所有修改

# 提交到本地仓库
git commit -m "提交说明"

# 推送到远程
git push origin <分支名>

# 拉取更新
git pull origin <分支名>

🌿 分支操作 #

# 查看分支
git branch              # 查看本地分支
git branch -a           # 查看所有分支(包括远程)

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

# 切换分支
git checkout <分支名>

# 删除分支
git branch -d <分支名>   # 安全删除(已合并)
git branch -D <分支名>   # 强制删除(未合并)

# 重命名分支
git branch -m <新分支名>

🔄 合并与变基 #

# 合并分支到当前分支
git merge <分支名>

# 变基(保持提交历史线性)
git rebase <分支名>

# 变基交互式(整理提交)
git rebase -i HEAD~3   # 整理最近3次提交

↩️ 撤销操作 #

# 撤销工作区修改
git checkout -- <文件名>

# 撤销暂存区文件
git reset HEAD <文件名>

# 修改最后一次提交
git commit --amend -m "新提交说明"

# 回退到指定提交
git reset --hard <提交ID>      # 彻底回退
git reset --soft <提交ID>      # 保留修改到暂存区

# 撤销某个提交(创建新的反向提交)
git revert <提交ID>

📊 查看历史 #

# 查看提交历史
git log                 # 详细日志
git log --oneline       # 简洁日志
git log --graph         # 图形化显示

# 查看文件修改历史
git blame <文件名>

# 查看两次提交之间的差异
git diff <提交ID1> <提交ID2>
git diff HEAD~1 HEAD   # 比较最近两次提交

🏷️ 标签管理 #

# 创建标签
git tag <标签名>                 # 轻量标签
git tag -a <标签名> -m "说明"    # 附注标签

# 推送到远程
git push origin <标签名>
git push origin --tags          # 推送所有标签

# 删除标签
git tag -d <标签名>

🌐 远程仓库 #

# 查看远程仓库
git remote -v

# 添加远程仓库
git remote add <别名> <仓库地址>

# 移除远程仓库
git remote remove <别名>

# 更新远程分支列表
git fetch --prune

🧹 清理与优化 #

# 清理未跟踪文件
git clean -f           # 删除未跟踪文件
git clean -fd          # 删除未跟踪文件和目录

# 垃圾回收
git gc

# 查看仓库大小
git count-objects -vH

🔧 实用技巧 #

# 暂存当前修改(临时保存)
git stash              # 暂存
git stash list         # 查看暂存列表
git stash pop          # 恢复最近暂存的修改

# 查看某次提交的修改
git show <提交ID>

# 查找包含关键词的提交
git log --grep="关键词"

# 别名设置(添加到 ~/.gitconfig)
git config --global alias.st status
git config --global alias.co checkout
git config --global alias.br branch
git config --global alias.ci commit

🚨 常见问题处理 #

# 强制推送(覆盖远程,慎用!)
git push -f origin <分支名>

# 丢弃本地所有修改(慎用!)
git reset --hard HEAD

# 解决冲突后继续合并
git merge --continue
git rebase --continue

# 终止合并/变基
git merge --abort
git rebase --abort