1 确定idea上面已经集成了git

2 集成之后

以上只是idea里面集成了git;
我们还要让项目变成git管理的项目,接下来做的是


这个操作就是将当前项目交给git管,这样文件就都变为绿色了;就相当于git还没有追踪到,需要我们git commit

3 以上是集成的设置,设置完成之后,我们就可以看到

4 点击项目右键,就可以看到出现一个

我们自己的项目,看看项目里面的文件夹有没有 .git

如果有就可以了,说明这个项目是一个Git仓库,如果没有,那么我们就需要将这个项目变为一个Git仓库,具体的操作为


按照以上的步骤,选取自己的项目之后按确定,那么就可以将自己的项目变为git仓库了。

变为git仓库了,现在就需要将自己的项目上传到gitlab了。
在gitlab上面自己创建一个仓库,并且将仓库的http的地址复制。

右键项目整体,先添加

后commit


之后push



点击origin




这样就可以提交上去了

更新项目的话,commit的时候选择你修改的文件,push的时候,对应的url就是你要更新项目仓库的url。这样,gitlab上面仓库里面的项目就是你选择的文件进行修改了。也就是只是局部进行修改。

5 查看commit的几次,就是看版本


看到以上commit了3次;

我们想要回到某一次,我们可以右击想要回到的版本


只要点击了以上的这个,就回去了

6 创建分支

第一个方法

我们想要在当前的项目的基础上面,创建一个分支,相当于对于当前的项目复制一份,变为一个分支




如何查看是不是切换过去了

idea右下角,就可以看到当前的项目在哪个分支



第二个方法创建分支

直接在右下角进行点击创建

7 来回切换分支

7.1 如果在分支上创建了新的文件,没有add

我们现在有master分支,在master基础上,创建了新的一个fz,然后切换到fz上,进行创建一个文件,或者修改了代码里面的东西,这个时候我们不add,那么里面切换到master,我们看到的情况是

回到master里面,这个新建的文件还是在的;

7.2 切换回master,文件还在,我们add

就是在fz里面创建的文件,还没有add,直接切换到master里面,发现这个master分支里面有fz里面创建的文件,那么我们在master里面将这个文件add了;之后再切换回fz,这个fz里面会在吗


说明add是加到了缓冲区,这个缓冲区和哪个分支是没有关系的

7.3 我们在master里面进行commit

这个文件是fz里面创建的,不管在哪个分支里面add,都可以看到,我们现在在master里面进行commit


我们回到fz里面


发现新创建的文件不见了,说明了不管是哪个分支创建的文件,或者修改了东西,不管哪个分支add了,开始每一个分支都可以看到,直到某一个分支进行commit,那么这个新文件就只能在当前commit的分支里面看到,切换到其他的分支,就看不到了;

8合并分支

8.1 正常合并

我们在fz上创建了一个文件,已经add,commit,只能在fz上看见这个文件,我们切换到master里面,想要将这个新建的合并到master里面,如何合并

1 我们先到master里面
2 idea里面的右下角里面选择


选择想要合并的分支,选择合并到目前

执行成功之后,分支上面的所有的东西都合并到这个master里面了

8.2合并冲突

我在fz上一个地方改了,进行add commit,之后切换回master,同样的地方进 行修改,之后进行add commit ,

都是可以commit成功的,现在我们要在master里面合并fz里面的


可以看到,需要我们手动选择,使用他的还是我的,使用当前分支的,还是其他分支的,还是直接合并;

9 码云

1 先登录到自己的码云
2 新建一个仓库


创建完成,就有了一个仓库


3 idea里面安装gitee插件,安装完成之后


4 添加账户名称



就可以将项目push到gitee上面了

9.1 如果码云上面已经有人新增了文件,你直接合并?

有个同事自己写了一个文件,你没有拉取,没有合并,直接将自己写的东西add,commit之后,直接push,会出现的情况是


这个提示的意思是,push已经被拒绝,你应该在push之前进行合并,所以你可以点击merget;

这样就是先合并了人家的东西,之后把你写的提交上去了,你本地和线上就是最新的;

9.2 如果有人再git上改了和你同样的地方,你merge的时候,会出现的情况是?

1 有同事已经改了一个地方,你碰巧也改了同样的地方,但是你还没有add,和commit,直接merge,会出现的情况是


提示的内容是:
你当地的改变将被重写,你可以commit,或者隐藏,或者恢复他们得到继续

我们遇到这种情况,就是线上的和我们的冲突了;我们点击view them

就可以看到哪个文件和线上的冲突了。

解决
我们就需要将我们自己改的地方先去掉,要记住自己写的,先合并之后,再把自己写的给修改了,之后push;

2 如果线上的地方改了,你本地同样的地方也改了,并且已经add commit了,那么合并的时候

就会让你选择,你是使用线上的,还是本地已经commit的;

9.3 如果你在本地修改了一个文件,已经有其他的人修改了,并且人家还新增了一些文件

你没有合并,直接push,情况就是提示你要合并,那么就会让你选择,合并的是你的还是线上的,之后再push

idea 里面的git的其他操作

前提

我们在master里面创建一个文件夹,里面有3个文件

在fz里面,创建一个文件夹,里面也有3个文件

都上传到码云里面,目前的情况就是,我们切换不同的分支,就可以看到不同的文件夹,两个文件夹是不可能出现在一起的


目前的提交记录就是这;


我们根据这些选项,看看到底有什么功能

Copy Revision Number


这个就是复制当前记录的版本号

Create Patch

生成当前记录的 patch文件,在其他的分支执行这个文件,就可以将东西复制过去

Cherry-Pick

我们在master里面,在其他的分支里面写了好多的代码,并且commit了好多次,现在我们想要在master里面,将其他分支里面 的某一个或者几个commit的拿过来;

我们就可以切换到master分支里面,找到全部的历史提交记录,找到想要拿到这个里面的版本,直接右击,选择这个按钮,那么就可以将他拿到master里面;

Checkout Revision


切换到当前的版本

展示当前版本的全部代码