不小心将测试代码提交到生产环境,教你6种方法秒解决
Git 版本管理时,往往需要撤销某些操作。
本文介绍几种最主要的情况,给出详细的解释。 一、撤销提交
一种常见的场景是,提交代码以后,你突然意识到这个提交有问题,应该撤销掉,这时执行下面的命令就可以了。 $ git revert HEAD
上面命令的原理是,在当前提交后面,新增一次提交,抵消掉上一次提交导致的所有变化。它不会改变过去的历史,所以是首选方式,没有任何丢失代码的风险。
git revert 命令只能抵消上一个提交,如果想抵消多个提交,必须在命令行依次指定这些提交。比如,抵消前两个提交,要像下面这样写。 $ git revert [倒数第一个提交] [倒数第二个提交]
git revert 命令还有两个参数。 --no-edit :执行时不打开默认编辑器,直接使用 Git 自动生成的提交信息。 --no-commit :只抵消暂存区和工作区的文件变化,不产生新的提交。 二、丢弃提交
如果希望以前的提交在历史中彻底消失,而不是被抵消掉,可以使用 git reset 命令,丢弃掉某个提交之后的所有提交。 $ git reset [last good SHA]
git reset 的原理是,让最新提交的指针回到以前某个时点,该时点之后的提交都从历史中消失。
默认情况下, git reset 不改变工作区的文件(但会改变暂存区),--hard 参数可以让工作区里面的文件也回到以前的状态。 $ git reset --hard [last good SHA]
执行 git reset 命令之后,如果想找回那些丢弃掉的提交,可以使用 git reflog 命令,具体做法参考这里。不过,这种做法有时效性,时间长了可能找不回来。 三、替换上一次提交
提交以后,发现提交信息写错了,这时可以使用 git commit 命令的 --amend 参数,可以修改上一次的提交信息。 $ git commit --amend -m "Fixes bug #42"
它的原理是产生一个新的提交对象,替换掉上一次提交产生的提交对象。
这时如果暂存区有发生变化的文件,会一起提交到仓库。所以, --amend 不仅可以修改提交信息,还可以整个把上一次提交替换掉。 四、撤销工作区的文件修改
如果工作区的某个文件被改乱了,但还没有提交,可以用 git checkout 命令找回本次修改之前的文件。 $ git checkout -- [filename]
它的原理是先找暂存区,如果该文件有暂存的版本,则恢复该版本,否则恢复上一次提交的版本。
注意,工作区的文件变化一旦被撤销,就无法找回了。 五、从暂存区撤销文件
如果不小心把一个文件添加到暂存区,可以用下面的命令撤销。 $ git rm --cached [filename]
上面的命令不影响已经提交的内容。
六、撤销当前分支的变化
你在当前分支上做了几次提交,突然发现放错了分支,这几个提交本应该放到另一个分支。 # 新建一个 feature 分支,指向当前最新的提交 # 注意,这时依然停留在当前分支 $ git branch feature # 切换到这几次提交之前的状态 $ git reset --hard [当前分支此前的最后一次提交] # 切换到 feature 分支 $ git checkout feature
上面的操作等于是撤销当前分支的变化,将这些变化放到一个新建的分支。
本文转载自:「阮一峰的网络日志」,原文:https://url.cn/5NLK2pC,版权归原作者所有。
三星重大损失,190G机密资料被偷,英伟达同样损失严重日前,南美黑客组织Lapsus在攻击英伟达之后,再次攻击了三星,并公开泄漏了190G大小的机密资料,用已证明自己确实攻击了三星,获得了三星内部机密开发资料。这些数据包括生物认证识别
三年连亏30亿,蜂巢能源上市前途未卜魏建军何时能止血?文商小包近日,上交所官网显示,蜂巢能源科技股份有限公司(以下简称蜂巢能源)的科创板IPO已获受理。招股书显示,公司本次拟募资150亿元,用于常州湖州遂宁的动力锂离子电池项目以及研发
LAMP可冻干高品质原料让病原检测更方便快速来源小桔灯网环介导等温扩增(loopmediatedisothermalamplification,LAMP)使用具有链置换特性的BstDNA聚合酶,在等温条件下高效快速特异性扩增
改革取得新成效央企高质量发展奋楫争先新华社北京及中国证券报刊发文章改革取得新成效央企高质量发展奋楫争先。文章称,按照国务院国资委部署,国企改革三年行动任务要确保在今年年底前全面完成,这场为期三年的改革大考即将响铃收卷
4位互联网大佬一台戏,会擦出什么样的火花?出品三言Pro如果让你选几个话题性最足互联网科技领域的大佬,你的答案里都有谁?又或者你最想听到他们谈论什么话题?我想下面这几个人估计都会在名单中俞敏洪李国庆张朝阳原因也很简单,他们
打造湾区城市生产生活分拨中心广州日报讯(全媒体记者曹菁)近日,由广东广清空港产业新城建设投资有限公司主办清远市中小企业服务中心承办的广清空港现代物流产业新城2022年第二批次招商引资项目评审会及广清空港现代物
她从宫女到乾隆最宠爱的妃子,竟是因为她的故意为之清乾隆三十年,乾隆皇帝第四次下江南。这一天晚上,乾隆吃晚饭时,发现皇后并没有在身边。于是当天晚上,他宠幸了另一个女人,也就是后来的令妃。之后,乾隆南巡结束,返回北京,便正式的册封令
准噶尔汗国是什么?为何从康熙到乾隆,清朝和它打了上百年一概要准噶尔部本是蒙古四卫拉特(准噶尔和硕特杜尔伯特土尔扈特)的一部,在历史上四卫拉特分化演变,彼此争雄。至17世纪,由于内部人口压力,土尔扈特部转向伏尔加河流域发展,和硕特部则向
安顿心灵的书房我上学时的那个年代,老师和家长并不鼓励孩子多读课外书。他们一致认为,与其看闲书还不如多背几个英语单词多做几道数学题。我对读闲书却饶有兴趣。20世纪90年代初,家里经济条件不甚宽裕,
乾隆身后43年鸦片战争的失败是朕造成的?凭啥背锅1840年7月5日清晨,舟山群岛海定县城的清军还和往常一样值勤守备,有人望洋兴叹,有人聊天唠嗑,微风徐徐水波不兴清朝海军虽然早在1年前,林则徐的虎门销烟震惊全世界,严重打击了英在华
即便毫无血缘关系,长相相似的人也有大量相同的DNA?不仅如此头条创作挑战赛世界上是否存在着两个长相极其相似的人呢?当然,双胞胎就是个很好的例子,准确一点说,应该是同卵双胞胎。同卵双胞胎长相相似是理所当然的,因为他们是出自同一个受精卵,两个胚