### git 删除 错误 提交的 commit
方法:
根据–soft –mixed –hard,会对working tree和index和HEAD进行重置:
Git reset --mixed:此为默认方式,不带任何参数的git reset,即时这种方式,它回退到某个版本,只保留源码,回退commit和index信息
git reset --soft:回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit即可
git reset --hard:彻底回退到某个版本,本地的源码也会变为上一个版本的内容,此命令 慎用!
~~~
HEAD 倒数第一次的提交
HEAD^ 倒数第二次的提交
HEAD^ ^ 倒数第三次的提交
HEAD^^^ 倒数第四次的提交
~~~
----------------------
~~~
HEAD~0 最近一个提交
HEAD~1 上一次提交
HEAD^2 上一次的 上一次的提交(倒数第三次)
HEAD^3 倒数 第四次的 提交
~~~
任何一个版本控制系统中,最有用的特性之一莫过于 “撤销(undo)”操作。在Git中,“撤销”有很多种含义。当你完成了一次新的提交(commit),Git会及时存储当前时刻仓库(repository)的快照(snapshot);你能够使用Git将项目回退到任何之前的版本。
下文中,我将列举几个常见的、需要“撤销”的场景,并且展示如何使用Git来完成这些操作。
#### 一、撤销一个公共修改 Undo a "public" change
场景:你刚刚用git push将本地修改推送到了GitHub,这时你意识到在提交中有一个错误。你想撤销这次提交。
使用撤销命令:git revert
发生了什么:git revert将根据给定SHA的相反值,创建一个新的提交。如果旧提交是“matter”,那么新的提交就是“anti-matter”——旧提交中所有已移除的东西将会被添加进到新提交中,旧提交中增加的东西将在新提交中移除。
这是Git最安全、也是最简单的“撤销”场景,因为这样不会修改历史记录——你现在可以git push下刚刚revert之后的提交来纠正错误了。
#### 二、修改最近一次的提交信息 Fix the last commit message
场景:你只是在最后的提交信息中敲错了字,比如你敲了git commit -m "Fxies bug #42",而在执行git push之前你已经意识到你应该敲"Fixes bug #42"。
使用撤销命令:git commit –amend或git commit --amend -m "Fixes bug #42"
发生了什么:git commit –amend将使用一个包含了刚刚错误提交所有变更的新提交,来更新并替换这个错误提交。由于没有staged的提交,所以实际上这个提交只是重写了先前的提交信息。
#### 三、撤销本地更改 Undo "local" changes
场景:当你的猫爬过键盘时,你正在编辑的文件恰好被保存了,你的编辑器也恰在此时崩溃了。此时你并没有提交过代码。你期望撤销这个文件中的所有修改——将这个文件回退到上次提交的状态。
* * * * *
http://mobile.51cto.com/hot-481240.htm
- 目录
- 撤销
- Git reset
- Git revert
- Git reset 命令
- Git的撤消操作 - 重置, 签出和撤消
- 冲突
- 解决Git合并分支发生的冲突
- BASH
- 复制黏贴
- 教程
- 合并
- 合并提交
- 分支
- Gitee(码云)
- Github
- 免费私有库
- 本地仓库推送到github仓库
- 工具
- SourceTree
- 添加git-bash.exe到环境变量
- Git
- 安装
- 配置
- 命令行
- 10个技巧让开发者的Git水平迅速提升
- 3.2 Git 分支 - 分支的新建与合并
- 远程分支
- Git帮助
- Git帮助
- 显示命令帮助
- Git 命令
- 参数配置
- 还原至上次提交
- Git 操作命令
- Git tag
- Git 分支管理
- 认识分支
- 卖主分支
- 分支操作
- 本地仓库远程提交
- Git 分区
- 认识里程碑
- 忽略文件
- 已有项目
- 《Git权威指南》