前言

Github:https://github.com/HealerJean

博客:http://blog.healerjean.com

准备

准备项目hlj-git-practice 创建两个文件夹me,other分表讲这个项目复制到这两个文件夹下

第一个me文件夹

1、local Changes 本地文件的修改

如果不更新代码,则看到的一直是本地的)

1563506003112

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

1563506832186

1.2、Gt仓库中存在,本地做了修改

左面是是Git中的

右面是自己当前的

1563506035163

2、log commit的日志

**左面是上次commit的文件 **

右面是当次commit的文件

2.1、新创建一个文件,并且commit

public class Git {

    public static void main(String[] args) {

        System.out.println("init - 未冲突");
    }
}

1563507181587

2.2、修改这个文件,并且commit

public class Git {

    public static void main(String[] args) {

        System.out.println("init - 未冲突");

        /**
         * 率先提交
         */
        System.out.println("率先提交");
    }

}

左面是上次提交的(不论是谁提交的)

右面是这次提交的

1563507194015

2.3、修改这个文件,再次commit

public class Git {

    public static void main(String[] args) {

        System.out.println("init - 未冲突");

        /**
         * 率先提交
         */
        System.out.println("率先提交");

        /**
         * 率先commit提交2
         */
        System.out.println("率先commit提交2");
    }

}


左面是上次提交的(不论是谁提交的)

右面是这次提交的

1563507211056

2.4、所有的log日志

1563506971908

3、commit

1563505954808

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

1563506104398

4、push

1563507413814

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

1563507433748

other文件夹

1、目前的状态

1563507990144

1563508015423

2、开始修改

public class Git {

    public static void main(String[] args) {

        System.out.println("init - 未冲突");

        /**
         *  other 第一次commit
         */
        System.out.println(" other 第一次commit");
    }

}

3、commit

1563508216365

1563508225697

4、push

这个时候push,肯定冲突,但是不要紧,冲突就冲突吧,主要是为了获取的冲突后的解决方法,一直点,最后点击merge,然后就会先拉到本地,而没有push

4.1、如果我们在弹窗不解决的话冲突的文件,而是关闭的话,就会在下面让我解决。

1563508915880

上面是我的,下面是别人的

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
    }

}

5、log

**log中根据日期进行重新排列了,这个时候观察和上面介绍的一样,还是比较的上次提交和当次提交的对比,这样我们就可以看到别人之前提交的东西 以及他本地做的修改 **,

1563508604738

6、Local Changes

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

1563508814184

7、冲突解决

7.1、在Local Change 中点击Resolve 进行冲突的解决

1563514892835

7.2、。可以拖动以及删除,最后点击apply

中间是最终的结果,

左面是我的版本,

右面是冲突的别人的版本

1563515110721

7.3、,这个时候不会帮我们自动提交commit,而是相当于作为本地进行修改了,现在我们commit,下面我们还可以看到 6中出现的3个版本

1563508989584

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

1563519234280

中间是当前结果,

左面是我的版本,

右面是冲突的别人的版本

1563519246254

me

1、再次编辑 文件进行创建冲突

1.1、具体操作

 public static void main(String[] args) {

        System.out.println("init - 未冲突");

        /**
         * 率先提交
         */
        System.out.println("率先提交");

        /**
         * 率先commit提交2
         */
        System.out.println("率先commit提交2");

        /**
         * 第二次制作冲突
         */
        System.out.println("第二次制作冲突");
    }

1.2、直接commit,再pull ,自动就会让我们解决冲突,按照上面的解决冲突的流程进行解决,那么它会为我们自动提交备注 如下

1563519899570

1563519905499

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

ContactAuthor