如何玩转IDEA的Git
平常我们的开发过程当中通常会因为,代码提交错误,或者需求变更,这个时候又要从新改代码,或者同一个功能反反复复提交相同备注消息的记录。这个时候我们就会使用到了Git的撤回提交操作或者Git的合并相关操作。这篇文章就是来介绍我们如何去利用IDEA去玩转Git。
回滚
对错误的提交记录,进行撤回操作,并且从新修改在进行提交。
但是很多人点击了回滚操作后,发现有四个选项,这个时候就不知道如何进行操作,又担心误操作导致公司的代码被自己弄没了或者被自己干掉了,这将是巨大的损失,而且自己还要背负风险责任;
下面我们就来一一介绍下下面四个选项的作用;
说到这四个选项作用,我们不得不提一下Git的相关知识:
工作区 -> 暂存区 -> 本地Git仓库 -> 远程Git仓库
add : 工作区 -> 暂存区
commit : 暂存区 -> 本地Git仓库
push : 本地Git仓库 -> 远程Git仓库
- Soft: 不修改文件,会将所有的提交内容回滚到暂存区;
- Mixed: 不修改文件,会将所有的提交内容回滚到工作区;
- Hard: 修改文件,会将所有提交的内容回滚到当前提交点,之前的所有记录内容和工作区编写内容就将彻底删除;
- Keep: 修改文件,会将所有提交的内容回滚到当前提交点,但是保留工作区内容;
Soft
不会修改文件的意思就是进行回滚操作,当回滚的提交记录过程当中新增的文件不会进行删除掉,还是会保留的,但是当前提交记录的内容都将进入到暂存区;
准备环境
1)初始化环境
2)新建一个文件soft.java 编写内容进行提交操作
public class Soft {
public void soft(){
System.out.println("新增文件soft");
}
}
3)新建一个文件soft2.java编写内容不进行提交操作
public class Soft2 {
public void soft2(){
System.out.println("新增文件soft2");
}
}
4)进行回滚操作
步骤1:
步骤2:
发现结论
刚刚新增的两个文件soft.java 和 soft2.java 并没有被因为回滚操作而删除掉,并且都变成了绿色,说明已经被add,但是并且未commit;而且内容仍然存在工作区;
Mixed
不会修改文件的意思就是进行回滚操作,当回滚的提交记录过程当中新增的文件不会进行删除掉,还是会保留的,但是当前提交记录的内容都将进入到工作区;
准备环境
1)初始化环境
2)新建一个文件soft.java 编写内容进行提交操作
public class Soft {
public void soft(){
System.out.println("新增文件soft");
}
}
3)新建一个文件soft2.java编写内容不进行提交操作
public class Soft2 {
public void soft2(){
System.out.println("新增文件soft2");
}
}
4)进行回滚操作
步骤1:
步骤2:
发现结论
刚刚新增的两个文件soft.java 和 soft2.java 并没有被因为回滚操作而删除掉,并且都变成了红色,说明未add;而且内容仍然存在工作区;但是这些文件我们在后面进行提交时候还需要手动的进行add操作
Hard
会修改文件,就是回滚过程当中提交记录新增的文件会删除掉,并且提交过程所有修改新增内容也全部删除掉;
准备环境
1)初始化环境
2)新建一个文件hard.java 编写内容进行提交操作
public class Hard {
public void hard(){
System.out.println("新增文件Hard");
}
}
3)新建一个文件hard2.java编写内容不进行提交操作
public class Hard2 {
public void hard2(){
System.out.println("新增文件hard2");
}
}
4)进行回滚操作
步骤1:
步骤2:
发现结论
刚刚新增的两个文件hard.java 和 hard2.java 并没有被因为回滚操作都被删除掉,说明hard操作就是直接将之前所有的提交记录,无论是已经提交的还是未提交内容全部干掉。
Keep
会删除文件,代表回滚过程之前所有的提交新增的文件会被删除掉,但是修改的内容会保存到暂存区;
准备环境
1)初始化环境
2)新建一个文件keep.java 编写内容进行提交操作
public class Keep {
public void keep(){
System.out.println("新增文件Keep");
}
}
3)新建一个文件keep2.java编写内容不进行提交操作
public class Keep2 {
public void keep2(){
System.out.println("新增文件keep2");
}
}
4)进行回滚操作
步骤1:
步骤2:
发现结论
刚刚新增的hard.java 文件被删除掉了,但是hard2.java文件红色的,并且内容依然存在,说明Keep 操作会保留已经在编辑的内容,但是回滚之前的所有提交操作都会被回滚掉;
合并提交
准备环境