Idea中的Git操作
前言
Github:https://github.com/HealerJean
一、提交
准备项目hlj-git-practice 创建两个文件夹 me,other 分表讲这个项目复制到这两个文件夹下
1、第一个 me文件夹
1)local Changes 本地文件的修改
如果不更新代码,则看到的一直是本地的)

a、本地新创建的,Git 仓库中没有

b、Git仓库中存在,本地做了修改
左面是是
Git中的右面是自己当前的

2)log commit 的日志
**左面是上次
commit的文件 **右面是当次
commit的文件
a、新创建一个文件,并且 commit
public class Git {
public static void main(String[] args) {
System.out.println("init - 未冲突");
}
}

b、修改这个文件,并且 commit
public class Git {
public static void main(String[] args) {
System.out.println("init - 未冲突");
/**
* 率先提交
*/
System.out.println("率先提交");
}
}
左面是上次提交的(不论是谁提交的)
右面是这次提交的

c、修改这个文件,再次 commit
public class Git {
public static void main(String[] args) {
System.out.println("init - 未冲突");
/**
* 率先提交
*/
System.out.println("率先提交");
/**
* 率先commit提交2
*/
System.out.println("率先commit提交2");
}
}
左面是上次提交的(不论是谁提交的)
右面是这次提交的

d、所有的 log 日志

3)commit

a、观察版本区别
可以观察到线上版本和本地修改的版本内容 (这里只显示一个,实际上
commit的3次在2.2中已经出现了)

4)push

4.1、提交
下面可以看到多个
commit(如果本地commit多次的话,但是我们的push只能一次性全部提交了,而不能根据commit的版本进行提交)

2、other文件夹


1)开始修改
public class Git {
public static void main(String[] args) {
System.out.println("init - 未冲突");
/**
* other 第一次commit
*/
System.out.println(" other 第一次commit");
}
}
2)commit


3)push
这个时候
push,肯定冲突,但是不要紧,冲突就冲突吧,主要是为了获取的冲突后的解决方法,一直点,最后点击merge,然后就会先拉到本地,而没有push
a、本地冲突解决
如果我们在弹窗不解决的话冲突的文件,而是关闭的话,就会在下面让我解决。

上面是我的,下面是别人的
public class Git {
public static void main(String[] args) {
System.out.println("init - 未冲突");
/**
<<<<<<< HEAD
* other 第一次commit
*/
System.out.println(" other 第一次commit");
=======
* 率先提交
*/
System.out.println("率先提交");
/**
* 率先commit提交2
*/
System.out.println("率先commit提交2");
>>>>>>> origin/master
}
}
4)log
**
log中根据日期进行重新排列了,这个时候观察和上面介绍的一样,还是比较的上次提交和当次提交的对比,这样我们就可以看到别人之前提交的东西 以及他本地做的修改 **,

5)Local Changes
可以看到本地做的修改,
git原有仓库的内容,以及被人提交的版本 ,这个呢,只能看不能修改,修改的话,到自己本地去吧。

6、冲突解决
在
LocalChange中点击Resolve进行冲突的解决

a、可以拖动以及删除,最后点击 apply
中间是最终的结果,
左面是我的版本,
右面是冲突的别人的版本

这时观看 log 中 冲突解决的文件

中间是当前结果,
左面是我的版本,
右面是冲突的别人的版本

3、me
1)再次编辑 文件进行创建冲突
public static void main(String[] args) {
System.out.println("init - 未冲突");
/**
* 率先提交
*/
System.out.println("率先提交");
/**
* 率先commit提交2
*/
System.out.println("率先commit提交2");
/**
* 第二次制作冲突
*/
System.out.println("第二次制作冲突");
}
a、冲突查看
直接
commit,再pull,自动就会让我们解决冲突,按照上面的解决冲突的流程进行解决,那么它会为我们自动提交备注 如下

不 commit,直接 pull,也是自动让我们解决冲突,解决完成 之后,这个时候不会帮我自动提交,而是还是在 Local Change 中进行展示,相当于 idea 为我们先拉取了代码,然后,我才做的修改,所以,即使查看也是 ,左面的显示 已经提交的版本(别人的),右面为我当前解决完冲突的版本

二、暂存
1、暂存



