Git常用命令全面分类总结

Git常用命令全面分类总结

以下是Git常用命令的全面分类总结,以及git reset --hard的详细解析,结合结构化的说明和示例,便于我们理解和记忆:


一、Git核心命令分类速查表

1. 仓库初始化与克隆
命令 作用 示例
git init 初始化本地仓库 git init
git clone 克隆远程仓库 git clone https://github.com/user/repo.git
2. 工作区与暂存区操作
命令 作用 示例
git add 添加文件到暂存区 git add file.txt(单文件) git add .(全部)
git restore 撤销工作区修改 git restore file.txt
git reset 撤销暂存区提交 git reset HEAD~1(回退到前一次提交)
3. 提交与日志
命令 作用 示例
git commit 提交到本地仓库 git commit -m "提交说明"
git log 查看提交历史 git log --oneline(简洁版)
git diff 比较差异 git diff HEAD~1(对比前一次提交)
4. 分支管理
命令 作用 示例
git branch 查看/创建分支 git branch dev(创建dev分支)
git checkout 切换分支 git checkout dev
git merge 合并分支 git merge dev(将dev合并到当前分支)
git rebase 变基操作 git rebase main(将当前分支变基到main)
5. 远程仓库交互
命令 作用 示例
git push 推送本地提交到远程 git push origin main
git pull 拉取远程更新并合并 git pull origin dev
git fetch 仅拉取远程更新 git fetch origin
6. 撤销与恢复
命令 作用 示例
git revert 生成新提交以撤销历史提交 git revert 提交ID
git reset 回退到指定提交(危险操作) git reset --hard HEAD~1
git stash 暂存未提交的修改 git stash(保存) git stash pop(恢复)

二、git reset --hard 深度解析

1. 作用
  • 彻底回退 :将当前分支的HEAD暂存区工作区全部重置到指定提交状态。
  • 数据丢失风险:未提交的修改和未推送的提交将被永久删除!
2. 参数对比
参数 影响范围 适用场景
--soft 仅移动HEAD指针 修改提交历史,保留工作区和暂存区
--mixed(默认) 移动HEAD,重置暂存区 撤销git add操作,保留工作区修改
--hard 移动HEAD,重置暂存区和工作区 彻底丢弃所有未提交的修改
3. 使用示例
bash 复制代码
# 回退到前一次提交(丢弃最新提交)
git reset --hard HEAD~1

# 回退到特定提交(根据提交ID)
git reset --hard a1b2c3d

# 强制同步远程仓库(本地与远程一致)
git reset --hard origin/main
4. 注意事项
  • 备份:使用前确保工作区和暂存区的重要修改已备份。
  • 协作影响 :若已推送提交到远程,强制推送(git push -f)会破坏他人代码,需谨慎!
5. 类比记忆
  • 软重置(--soft:像取消邮寄包裹,但包裹还在手中。
  • 混合重置(--mixed:包裹拆开,物品放回工作台。
  • 硬重置(--hard:直接丢弃包裹和所有未打包的物品。

三、常用场景速查

  1. 误提交后撤销 :使用git reset --hard HEAD~1丢弃最后一次提交。
  2. 恢复文件到最新版本git restore file.txtgit checkout -- file.txt
  3. 清理未跟踪文件git clean -df(删除未跟踪的文件和目录)。

四、总结

  • Git命令分类记忆:按操作目标(仓库、提交、分支、远程)分类,避免混淆。
  • git reset --hard 慎用:它是"后悔药"中的核武器,威力大但破坏性强。
  • 安全操作习惯:频繁提交、多用分支、重要修改前备份。
相关推荐
炸膛坦客9 小时前
Git 和 GitHub:(九)修改本地仓库内容并推送到远程仓库(关联/克隆)
git·github
To_OC10 小时前
一次 git reset 翻车,让我彻底分清了 hard 和 soft,也想通了 Vibe Coding 的本质
git·程序员·vibecoding
Ai拆代码的曹操11 小时前
Git 集成:AI 代理中的版本控制工作流设计
大数据·git·elasticsearch
lazy H11 小时前
Git clone 怎么用?克隆项目及常见问题完整教程
大数据·git·后端·学习·搜索引擎·github
m0_7436975914 小时前
关于ftp与SELinux的冲突问题
git·github
前进的程序员14 小时前
VS Code Git 工作树:多分支并行开发体验
git·vs code·git工作树
半夜修仙15 小时前
二.Git分支管理
git
六bring个六17 小时前
git使用笔记
笔记·git
最后冰吻free20 小时前
git 不新增commit修改中间commit对应的文件
git
芳草萋萋鹦鹉洲哦20 小时前
【git】重新生成并添加 SSH Key(Mac)
git·macos·ssh