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