配置文件2本地仓库回滚3远程仓库回滚方法reset Head方法revert 4总结配置文件使用git进行代码版本控制时,总是会遇到代码回滚。 回滚有两种类型:本地仓库回滚和远程仓库回滚。 本地仓库的返还使用git reset。 代码尚未推送至远程仓库,必须取消本地仓库的commit信息。 可以直接使用Reset HEAD回滚。
重置类型有三种:混合(idea默认值)、软件和硬件
1、软件
移动本地库中的HEAD指针
也就是说,回滚后,只移动了本地库中的指针,暂存区和您的本地代码没有任何更改。
如果您更改上次提交到本地库的代码,它将变为绿色,也就是未提交
2、混合
移动本地库中的HEAD指针
暂存区的复位
回滚后,本地库中的指针不仅移动了,而且暂存区中的也不见了,这意味着上次添加到暂存区的文件也不见了
3、hard
移动本地库中的HEAD指针
暂存区的复位
重置工作区
也就是说,回滚之后,本地代码是您回滚的版本的代码
4、keep
移动本地库中的HEAD指针
重置工作区
也就是说,回滚之后,本地代码是您回滚的版本的代码,暂存区中的文件仍然保存。
其他大人物的博文详细说明了三种倒带方法。
3359 blog.csdn.net/QQ _ 38339124/article/details/98869755
To commit : HEAD^返回上一个版本; revision Number将返回指定版本号的版本;
远程仓库回滚的第一种方法是使用reset Head和git push -f强制提交。 要复制并回滚到哪个版本的版本号
reset type选择了硬盘
此时,本地仓库已回滚到指定版本,指定版本之后的代码已消失。 但是,还没有远程仓库。 推送到远程仓库的话,会被要求拒绝,但是不能和远程仓库合并。 因为合并后将无法达到回滚的目的。 直接打开Terminal,然后在项目目录下键入git push -f强制提交。 此时,回滚已同步到远程仓库。 如果登录并确认远程仓库,则回滚到指定版本后没有提交信息。
第二种方式revert网上也说第一种方式不好,以下是别人的测试
回滚远程仓库代码是在谷歌上搜索时,基本上得出的答案是使用Reset HEAD和git push -f强制提交的方式。
我们在本地测试了一下,如果两个人同时在这个分支上开发,一个谨慎的鲜花用这种方法回滚了远程仓库代码,那么另一个Web在这个时候本地还在回滚前面的代码,而Web则在本地此时,如果b先生进行推送操作,以前小心开花回滚的代码又会被送到远程仓库。 B先生回滚后,除非本地仓库的版本也回滚。 我保证不会将回滚的代码重新推送到远程仓库,但是很多开发人员无法确保所有开发人员的本地分支都将回滚
因此,请勿使用名为git push -f的方法强制回滚远程仓库代码。
也可以使用第二种方法git revert回滚项目
commit之后,push去远程仓库。 最终结果如下
可以看到生成了新的commit记录,并将代码推送至远程端。 如果其他开发人员执行拉式操作,并且本地仓库也正确回滚到指定的提交点,则不必担心回滚的代码会被重新推送到远程仓库。
第一种方法的总结是,回滚版本之后的提交信息将被清除。 resvert方式记录回滚操作; revert实际上会生成新的commit并碰撞原始commit。 使用revert时,只能回滚某个版本的commit,因此每次必须回滚到指定版本。
悲伤的发夹如果有不同的意见可以在信息里一起讨论