尼玛,不小心干掉了一下午写的代码,白干了
事情原由
对,就是这个提交,本来没打算提交的,因为代码写了80%还没写完,但是不小心按到了提交快捷键,然后就提交到本地了。
额。。。不就是不小心提交了嘛,回撤回来就行了。
哇,好久没用这个了,好几个看着都像回撤功能,不确定用哪个了,一般Re开头都有“从头再来”的感觉,试试吧!然后
Revert Commit
什么?😱 我发现我本地写的代码都没了!!!下午白干???
什么情况?
提交列表出来了一个提交信息:
Revert"feat 订单重构-策略模式"
哇!这个条提交信息【Revert"feat 订单重构-策略模式"】可以执行Undo Commit…,那再试试这个吧!!
执行Undo Commit…之后提交列表没有这个提交信息了【Revert"feat 订单重构-策略模式"】消失术!!
然后马上看了看我本地代码,纳尼?怎么还是没有?
但是 commit changeList里面确实有了!!!!
最后执行回滚操作:
代码终于回来了,目前回到了之前的误提交状态
那我怎么撤回这个误提交呢?
接下来,我要撤回这个误提交,操作Undo commit。。。。
终于,YES,还是我之前的状态,代码回来了!!
最开始直接执行Undo commit就能解决的问题!!!自己非得玩点花活儿!!
那接下来看看之前的那三个选项都有什么区别呢?
Reset Current Branch to Here…
“Reset Current Branch to Here” 是指将当前分支重置到当前状态。这通常是在Git版本控制系统中使用的术语。通过执行这个操作,你可以将当前分支的指针移动到当前所在的提交位置,这样就可以撤销之前的一些改动。
Revert Commit
RevertCommit 是指撤销先前的提交。在Git中,执行 git revert 命令将创建一个新的提交,该提交会撤销先前某个特定提交所做的更改。这种操作可以帮助管理代码库的历史记录,同时保留先前提交所引入的更改。
Undo Commit…
“Undo Commit” 意思是撤销先前的提交。在Git中,你可以使用 git reset 命令来撤销最近的提交,这将使代码库回到先前的状态,同时保留未提交的更改。另一种方法是使用 git revert 命令来创建一个新的提交,该提交将撤销先前的提交所引入的更改。
三者有什么区别呢?
相信大家能看出来,上面的解释是ChatGPT给的,回答很标准,但是没看懂哈哈!
这三者的主要区别在于它们对提交历史的影响和操作的方式。
提交三
提交二
提交一
Reset Current Branch to Here…
也就是我们常说的回滚,我们可以回滚到任意的提交点,切勿随意操作然后PUSH,会覆盖别人的之后的提交!!防止出现别人到处找代码的情况!!!“咦!我代码呢?昨天明明提交了!!”
Revert Commit
正如上面我操作的,这个命令将创建一个新的提交【指:Revert"feat 订单重构-策略模式"】,该提交会撤销操作某提交【指:“feat 订单重构-策略模式”】所引入的更改,但保留了操作某提交【指:“feat 订单重构-策略模式”】的历史记录。
git -c credential.helper= -c core.quotepath=false -c log.showSignature=false revert 2d37fb0cced29fef87e65c524e84e6bfc891fe8b
Undo Commit…
最简单了。。相当于reset --soft [commitId]
git reset --soft [commitId]
的意思是将当前分支的指针移动到指定的提交,但保留先前的更改暂存区和工作目录中。这意味着历史记录会改变,但你的文件更改不会被撤销。
git -c credential.helper= -c core.quotepath=false -c log.showSignature=false reset --soft 2d37fb0cced29fef87e65c524e84e6bfc891fe8b
英语角
“Revert” 意味着撤销之前的提交,将代码库恢复到先前的状态,但是通过创建一个新的提交来实现这一点,而不是简单地删除提交。
“Undo” 意味着撤销或者取消之前所做的操作,使得系统或者应用程序回到之前的状态。
其实我本来想做的就是撤销!!!!看吧!学好英语对程序员来说是多么的重要!!!
把英语捡起来,把英语捡起来!