ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Git 回滚篇git revert

2022-08-18 18:01:22  阅读:134  来源: 互联网

标签:回滚 Git revert commitId git 提交 commit


场景:
1.项目上线,发现有bug,要紧急回滚到上个版本;
2.多人合作,在qa出现了蹊跷的bug,不确定是哪个分支带来的,下掉可疑分支;
3.产品觉得还是之前版本比较好。。

噔噔噔噔git revert闪亮登场!

1.回滚某次提交
git revert commitId

2.回滚多次提交
git revert new-commitId^..old-commitId

如果我们想把这三个revert不自动生成三个新的commit,而是用一个commit完成,可以这样:
git revert -n new-commitId^..old-commitId
如果回滚的提交并不连续,导致生成多个新的commit,此时想用一个commit完成,可以这样:
git rebase合并多次commit:
git rebase -i commitId
commitId是想要合并的起始commit,例如,先revert第三次提交,再revert第一次提交,想要只生成一条新的commit时,commitId为revert第三次提交的commitId。

3.回滚之后还想再恢复回来
如果在sim上回滚了feature/EDU-001分支,而后发现这个分支并没有问题,所以没有改动想要再合并到sim此时merge feature/EDU-001,会发现没有任何可提交的更改,_这是因为从时间的发生顺序来看,A分支第一次合并之前的修改发生在revert之前,revert发生在后,而 revert抛弃了A第一合并之前的修改,那么再合并Git就认为你永远抛弃了A第一次之前的修改。_
所以要解决这个问题,需要把revert产生的提交再revert一次。

参考链接:https://blog.csdn.net/qq_35008279/article/details/86316819

为什么选择revert,不要reset?
1.revert和reset相比有两个重要的优点。首先,它不会改变项目历史,对那些已经发布到共享仓库的提交来说这是一个安全的操作。
git reset 有很多种用法。它可以被用来移除提交快照,尽管它通常被用来撤销缓存区和工作目录的修改。不管是哪种情况,它应该只被用于本地修改。切记,你无权重设公共历史。

2.git revert 可以针对历史中任何一个提交,而 git reset 只能从当前提交向前回溯。

参考链接:https://github.com/geeeeeeeeek/git-recipes/wiki/2.6-回滚错误的修改

标签:回滚,Git,revert,commitId,git,提交,commit
来源: https://www.cnblogs.com/wstmljf/p/16599625.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有