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. 使用示例
git reset --hard HEAD~1
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
慎用:它是“后悔药”中的核武器,威力大但破坏性强。- 安全操作习惯:频繁提交、多用分支、重要修改前备份。