以下是从初始化到版本控制、查看记录、撤回操作的 Git 命令全流程总结,按操作场景分类整理:
一、初始化与基础操作
操作 | 命令 |
---|
初始化仓库 | git init |
添加所有文件到暂存区 | git add . |
提交到本地仓库 | git commit -m "提交描述" |
首次提交需配置身份 | git config user.name "用户名"
git config user.email "邮箱" |
二、查看操作记录
场景 | 命令 |
---|
查看完整提交历史 | git log |
简洁版提交历史(推荐) | git log --oneline |
查看所有操作记录(含删除) | git reflog |
三、撤回操作(核心场景)
1. 未提交的修改
场景 | 命令 |
---|
丢弃工作区单个文件的修改 | git checkout -- 文件名 |
丢弃所有未暂存的修改 | git checkout -- . |
撤销暂存区的文件(保留修改) | git reset HEAD 文件名 |
2. 已提交的版本
场景 | 命令 |
---|
撤销最近提交(保留修改) | git reset --soft HEAD^ |
彻底回退到上一版本 | git reset --hard HEAD^ |
回退到指定版本 | git reset --hard <commit_id> |
回退到前 N 个版本 | git reset --hard HEAD~N |
3. 已推送到远程
场景 | 命令 |
---|
安全撤回(推荐) | git revert <commit_id> |
强制覆盖远程(慎用!) | git reset --hard HEAD^
git push -f origin 分支名 |
四、操作流程图解
工作区 → `git add` → 暂存区 → `git commit` → 本地仓库 → `git push` → 远程仓库
撤回方向:
五、黄金法则
- 操作前查记录:执行撤回前先用
git log --oneline
确认目标版本 - 硬重置需谨慎:
--hard
会永久丢弃代码,确保已备份 - 团队协作原则:
- 已推送的提交用
git revert
代替 reset
- 避免强制推送 (
push -f
) 除非是私有分支
💡 终极安全建议:重要修改前创建分支备份:
git branch backup-branch