目录
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
切换到当前的版本