idea中 git版本回退

1、版本回退 之 Reset Type 有四种:

1.1、soft

①移动本地库HEAD指针

      意思就是,回滚后,仅仅是把本地库的指针移动了,而暂存区和你本地的代码是没有做任何改变的。而你上次改动已提交committed到本地库的代码显示是绿色即未提交。

1.2、mixed(默认方式)

①移动本地库HEAD指针

②重置暂存区

 只保留源码,回退commit和index信息。

 意思就是,回滚后,不仅移动了本地库的指针,同时暂存区的东西也没了,意思就是你上次添加到暂存区的文件没了

1.3、hard

①移动本地库HEAD指针

②重置暂存区

③重置工作区

意思就是,彻底回退,本地代码就是你回退版本的代码。

1.4、keep

①移动本地库HEAD指针

②暂存区不变

③重置工作区

意思就是,回滚后,本地代码就是你回退版本的代码,而暂存区是没有做任何改变的

2、回退版本

1、复制指定版本的 版本号  或 复制指定的tag名称,选择Reset Head -->  点击Reset.

如果需要看回退后的版本代码,可以点击Validate 进行查看。

idea中 git版本回退_第1张图片

idea中 git版本回退_第2张图片

3、将本地代码push到远程

将回滚后的代码push到远程,会出现冲突, 错误如下:

push of current branch test2 was rejected.

remote changes need to be merged before pushing.

​ 出错原因:

        是因为远程repository和本地的repository冲突导致的,在多人协同机制下,远程库的代码可能已经被其他程序员更新,而你的本地库还停留在未更新前前的状态,这种情况下的push会被远程库拒绝。(其实远程库判断的版本依据就是根据commit的history)

解决办法:

        先在已有代码的分支上创建一个新的本地开发分支 ,如test3,然后用之前旧分支 test2去pull一下远程库中的代码,然后将新创建的本地test3开发分支merge到旧分支test2上,再将test2本地分支代码 push到远程分支即可。


 

你可能感兴趣的:(git,#,idea,git,intellij-idea,java)