愛在花開的季節 发表于 5 天前

git:切换到指定的commit

配景

今天归并人家代码的时候,报辩论了,然后解决完辩论以后,发现有个辩论干错了,但是都已经commit了,以是我就想那就回到这次merge之前的我的分支的commit
解决过程

取消归并

我先查了能否直接取消归并,看到这样一条命令:
git merge --abort
执行后没有乐成,看信息好像是认为我并没有进行merge操作,我推测它可能只能打消乐成的merge,对于有辩论并解决过辩论的,它就不再认为是merge了,毕竟解决辩论之后还有一次commit操作,但这个只是推测,还有待验证。
git revert

但是我今天没空去验证了,代码要立刻上线,我火急火燎又去查怎样切到指定的commit,先看到的就是git revert commit-id命令,大意是说它可以回到指定的commit版本,且保留这个commit版本之后干过啥的陈迹,我试了一下,然后出现个vim编辑页面(我用的git bash),说是提供revert的信息,我就直接wq退出了,通过git log确实可以看到已往发生了什么,包括最新的revert,但是当我重新git merge的时候,体现已经是最新的了,git log上head指向的还是最新的revert的那次commit-id,无奈又失败了。这个原因目前也是没想通,也没空去搞清原理了。
git reset --hard

然后又看到git reset --hard commit-id命令,也不管了–hard还是–soft了,直接hard梭哈,还好,终于试出了一个对的,通过git log,看到之前的归并的commit和revert都没了。我直接重新归并。
总结

如今想想,其实只是一行代码归并出题目了,直接把那行代码写对了再commit一次得了,用不着像上文这么麻烦,但是也还算学了点东西,虽然不多,虽然原理也都没咋看。但是我之以是非要重新归并是由于那地方涉及到我不熟悉的liquibase技能中的一个changeSet,我不知道重新归并解决辩论和直接写对有没有区别,以是选了一个我看起来感觉比力保险的方法,事后大佬告诉我,是一样的,执行过的changeSet不能改,但如果改了的话,直接改回来就行了,不肯定要回滚。
说起Liquibase又是一堆题目,这个技能我也没正儿八经的看过,对于它需要留意的地方不是很了解,之后得去看看。
末了,感觉还是得用回谷歌,其他搜索引擎我得搜好几篇博客,比力着搞,有点浪费时间。
参考

参考

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页: [1]
查看完整版本: git:切换到指定的commit