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、冲突解决
在
Local
Change
中点击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、暂存