ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
### 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