git撤销操作

当改动还没有被提交之前,它们仍然被称之为 “本地” 改动。这些在你的工作目录的修改还仍然在本地,它们属于未被提交的改动。


有时候你对代码进行了一些修改,但是发现这些改动带来的问题比之前还要多。在这种情况下,你可能想要放弃你刚刚的改动,让代码恢复到你改动之前的版本,也就是上次提交之后的状态。


恢复一个文件到上次提交之后的状态,你可以使用 “git checkout” 命令:


git checkout -- file/to/restore.ext


我们已经知道了 “checkout” 命令主要是用来切换分支用的。但是你同样可以给这个命令附带上 “--” 参数,并加上用一个空格来分隔的文件路径。这个操作将撤销在特定文件上所有的未提交的改动。


如果你想要放弃你在工作副本中的所有本地改动,并让你的本地副本恢复到上次提交之后的版本,你可以使用 “git reset” 命令:


git reset --hard HEAD


上面这个操作会通知 Git 将你本地副本上的所有文件替换到和 “HEAD” 分支一致的版本(也就是上次提交之后的版本状态)上,并放弃所有的本地改动。


撤销已提交的改动


有时你也许想撤销某一个之前的提交。例如当你发现你的改动存在错误,或是整个改动就是错误的,又或者你的客户决定不需要这个改动了等等。


使用 “git revert” 命令可以撤销某个之前的提交。但是这个命令并不是删除那个提交,相反的,它是恢复那个提交的改动,这只是看起来像是撤销而已。这个操作实际上会自动产生一个新的提交。在提交中包括了你想要撤销的那个提交的所有反向改动。例如在原始提交中,你在某一个位置添加一些字符,那么这个恢复提交就会把这些字符删除掉。



如果想要撤销已提交的改动,你只需要简单地给出这个提交的版本号,可以通过git log查看


git log

commit 364d412a25ddce997ce76230598aaa7b9759f434


另外一种撤销提交的方法是使用 “git reset” 命令。这个操作不会自动产生一个新的提交,或是删除你要撤销的提交,它会重置你当前的 HEAD 分支到一个特定旧的版本,也被称作 “回滚” 到旧的版本:


git reset --hard 2be18d9


在执行了这个操作之后,你当前签出的分支将被重置为版本 2be18d9。在这个版本之后的一个或者多个版本将被真正的放弃,它们也不会显示在分支的历史记录中。



如果在这个命令上使用 “--hard” 参数则一定要小心,Git 将会丢弃所有你当前可能拥有的本地改动。整个项目将会被恢复成一个之前的旧版本。
如果你使用 “--keep” 参数来替代 “--hard” 参数,那么在 “回滚” 到的版本之后的所有改动将会转换成本地改动,并保留在你的工作目录中。


好了,今天的文章就到这里,本文由Web前端精髓为您提供,喜欢的同学记得点击收藏或者点赞哦!如果您有更多git操作方法,欢迎在下方留言区告诉我们哦!


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值