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
):直接丢弃包裹和所有未打包的物品。
三、常用场景速查
- 误提交后撤销 :使用
git reset --hard HEAD~1
丢弃最后一次提交。
- 恢复文件到最新版本 :
git restore file.txt
或git checkout -- file.txt
。
- 清理未跟踪文件 :
git clean -df
(删除未跟踪的文件和目录)。
四、总结
- Git命令分类记忆:按操作目标(仓库、提交、分支、远程)分类,避免混淆。
git reset --hard
慎用:它是"后悔药"中的核武器,威力大但破坏性强。
- 安全操作习惯:频繁提交、多用分支、重要修改前备份。