Git 如何撤回某一次提交

Git 如何撤回某一次提交

在 master 分支作了一次 commit ??!!

git add index.js
git commit -m '自觉得是在开发分支实际上是在master分支的一次提交'

以前没有出过这样的错误。就算出现也是直接push了而后再 reset 回滚而后再次 push -fgit

如何合适的解决这种状况

reset的三个参数

--mixed(默认参数)

重置位置的同时,只保留Working Tree工做目录的內容,但会将暂存区 和 Repository 中的內容更改和 reset 目标节点一致,因此原节点和Reset节点之间的变动文件,会放入Working Tree工做目录中。code

简单来讲就是:不删除工做空间改动代码,可是撤销commit,而且撤销git add开发

git reset --mixed HEAD^ 和 git reset HEAD^
HEAD^ HEAD~1 HEAD~2 其中 HEAD^ HEAD~1 同为上一个版本, HEAD~2 为上两个版本,也就是两次commit,以此类推

若是须要再撤销修改it

git checkout index.js

--soft

重置位置的同时,保留 working Tree 工做目录和暂存区的内容,只让 repository 中的内容和 reset 目标节点保持一致,因此原节点和reset节点之间的变动文件会放入暂存区中。ast

简单来讲就是:不删除工做空间改动代码,撤销commit,不撤销git add文件

--hard

重置位置的同时,直接将 working Tree工做目录、 暂存区及 repository 都重置成目标 reset 节点的內容。co

简单来讲就是:删除工做空间改动代码,撤销commit,撤销git addblock

这个操做会直接恢复到了上一次的 commit 状态。

若是已经push origin

在作完上面的操做后工作

git push origin -f
通常在撤回回滚的操做时候请记录好 commit 的版本号,以防再次出现失误没法挽回
相关文章
相关标签/搜索