文章目录
1.本地commit了,怎么撤回
如下,写了一段错误代码,本地提交了,现在想要把它撤回
我们可以在version control
标签里选择之前提交的记录,进行撤回
撤回后,defalt chanlist里将不再有该条记录,同时,会把该条记录放到default changelist外去
只要加入到版本控制后,我们本次修改的所有文件,都会放到一个IDEA提供的defalut changelist列表里,当我们commit的时候,默认就是提交这个列表里的记录,注意,多个Changelist中只有一个是active的,这个active的Changelist,默认情况下即为Default Changelist,粗体,且放在第一位。active的意思:快捷键(Ctrl + K)是对被设置为active的那个Changelist进行提交的。
参考:https://www.pianshen.com/article/13091530169/
2.远程commit,如何取消或者回滚
如图,远程提交了代码,但是想撤回
如上,若我们没有点击提交,那么在local changes里会多出一个list,我们可以再在这里commit也行,当我们commit后,本地环境就会回退到某个版本,本地代码也会恢复成之前版本代码
注意,commit后,必须还要push一下,不然远程仓库是不会改变的,这样远程仓库也会恢复到之前那个版本,不过我们提交的记录是递增的,即这样就保证大家pull的时候,都能正常下载代码下来
参考 2.10.3 远程仓库回滚
IDEA远程仓库版本回滚
Git 使用revert回滚已提交的commit
Git恢复之前版本的两种方法reset、revert(图文详解)
git撤销commit的三个方法
IDEA git分支回退指定的历史版本
3.远程代码提交了,本地如何恢复到某个版本
2回退,会把之前的代码都恢复过来,但是我们想要回退到某个版本的时候,之前修改的代码还能查看到,如图,我们提交了三次,那么回退到第一次的时候,第二和第三的代码希望还能看到
选择项目,右键,找到reset命令
或者输入版本号
HEAD^ 是还原到上一个版本,HEAD^^ 是还原到上上一个版本。
Reset Type 有三种:
mixed 默认方式,只保留源码,回退commit和index信息
soft 回退到某个版本,只回退了commit的信息,不会恢复到index file一级。如果还要提交,直接commit
hard 彻底回退,本地源码也会变成上一个版本内容,并且相当于revert
以上这些操作,都是让本地IDEA恢复到某个版本的代码,而远程代码都是没有改变的,
同时,reset命令,会导致本地head指针移动到之前某个版本位置,那么我们在log里,就只能看到
部分日志信息,若需要看到远程的日志信息,那么需要重新再pull一下,把head指针指向最新位置
4.删除记录
参考: https://www.cnblogs.com/wuxun1997/p/13821086.html 没试过
5.pull失败
当本地修改了代码,远程也修改了代码,在同一处,两边代码不一致,就会导致pull失败
如图,可以先看哪里地方冲突了,若难道手动去还原,那么点击rollback
来自动还原,当恢复到上一个版本后,就可以顺利Pull了
或者
或者可以根据提示这么解决
6.合并到master
当dev修改了很多后,我们可以把它合并到主分支上
可以看到,master上只有之前的版本信息
当我们要把dev的都切换到master上,有两种方式,一种是merge changes
,这种方式很快捷,直接合并后,再直接提交就可以了,不过这个有个弊端,就是提交的记录不是一条,而是dev里所有的修改的记录都提交上去了,这样就导致master实际上记录信息很多,一般master上应该没提交一次,注释记录表示实现了什么功能,或者新增,支持什么功能,而不是各种流水记录
还有一种方式是pull其他分支到主分支,但是提交的时候也会有要提交许多记录,如图
还有一种,就是dev先提交后,然后本地再reset到某个版本,这个时候,之前的版本的代码,就会在本地变成用户修改状态的代码,然后我们再把这些变化的代码再用stash保存起来,如图
然后我们再切换回master版本,再在这个版本把之前stash的代码放出来,如图:
这样,我们合并到master的记录,就可以从多条记录变成一个记录登记了
7.stash
当我们正在开发的时候,测试提了一些问题,需要修改,那么为了能让我们正在开发的代码找一个地方保存起来,然后我们再把测试那个版本的代码进行修改提交后,然后再把之前的代码放出来,如图:
提交补丁后,然后就可以再把之前代码放出来了