1. 在未暂存前,撤销本地修改
- 查看本地没有暂存的修改
git diff
- 撤销所有本地修改:
git checkout -- .
- 撤销指定文件的修改:
git checkout -- [filename]
2. 在暂存之后,撤销暂存区的修改
- 将本地所有已修改的文件添加到暂存区:
git add .
- 查看暂存区的修改:
git diff --staged
- 撤销暂存区的全部修改:
git reset .
- 1和2的两个命令可以合并成一个:
git reset --hard
<=>
git reset .
git checkout --
3. 提交到本地仓库之后(但未推送到远程仓库),撤销本次提交
- 将暂存区的所有文件保存到本地Git仓库,并生成文件快照:
git commit -m "modify some files"
- 回到当前提交的父对象a18c6fa:
git checkout a18c6fa
- 重置之前的提交:
git reset --hard HEAD~1
- 反悔重置之前的提交操作:
git reflog
git reset --hard f8651ff
4. 修改提交
- 添加遗漏文件,又不重新生成新的Commit ID:
git add src/app/app.component.css
git commit --amend
- 修复提交信息文案:
git commit --amend -m "add test container"
5. 撤销提交历史中的某一次指定的提交
git revert 711bb0b
6. 合并出现冲突时,撤销合并操作
- 添加遗漏文件,又不重新生成新的Commit ID:
git merge --abort