1、在Idea中配置Git
安装好IntelliJ IDEA后,如果Git安装在默认路径下,那么idea会自动找到git的位置,如果更改了Git的安装位置则需要手动配置下Git的路径。选择File→Settings打开设置窗口,找到Version Control下的git选项:
点击Test按钮,现在执行成功,配置完成
2、在Idea中操作Git
2.1、初始化远程仓库 【项目leader操作】
-
创建项目远程仓库
-
初始化仓库并推送到远程
主要初始化忽略文件及项目初始化代码,并推送到远程仓库
-
clone远程仓库到本地
-
选定本地磁盘一个文件夹,使用git命令完成此操作
-
clone完成后,如图所示
-
-
切换到开发分支
-
查看当前分支
-
检出develop分支,并确定是在开发分支
-
-
添加忽略文件
-
把初始化项目代码放到git仓库中
-
通过git命令完成添加、提交、推送
-
2.2、创建本地仓(不推荐使用)
先在本地创建本地仓库,然后与远程仓库关联 ,不建议按此方式操作。
2.3、克隆远程仓库到本地 (推荐使用)
-
选定本地磁盘一个文件夹,使用git命令完成clone操作。
-
切换到开发分支
2.4、打开clone的本地仓库项目(直接open打开)
2.5、本地仓库常规操作
-
新增文件
比如在某个包新增一个Java文件,如图所示:
勾选后,添加新文件,自动添加到暂存区,新文件自动变为绿色
-
编辑文件
比如修改某一个包下已存在的文件内容,如图所示:
正常编辑文件,默认放在工作区,如果需要添加到暂存区,选择文件,右键菜单,选择git-Add
-
重置文件到修改前
比如修订了某一文件,需要重置到修改文件之前的状态,选择文件,右键菜单,选择git-reset
重置后,文件颜色自动消失,说明已重置到修改之前的状态。
-
提交到本地仓库
-
提交当前文件
-
提交多个文件
-
添加注释并提交
-
提交完成
-
2.6、推送到远程仓库
推送操作:
-
把工作区内容添加到暂存区;
-
把暂存区内容提交到当前分支;
-
拉取远程仓库对应分支,如果有冲突,先解决冲突并提交保存
-
推送当前分支到远程仓库
1、拉取远程仓库对应分支
2、解决合并冲突
如果从远程仓库拉取的代码中,同一文件在本地仓库也修改了,需要解决合并冲突,比如如图所示:
解决冲突(根据业务情况,进行代码合并,并删除冲突提示)
提交合并冲突
推送当前版本到远程仓库
2.7、合并版本并推送到远程
如果当前版本需要发布,需要把develop合并到master版本
步骤:
1、切换到需要合并的版本,比如master
2、执行合并操作,使用当前版本合并其他版本到当前,比如master合并developer
3、合并完成,推送到远程仓库
2.8、创建分支
一般远程创建好的,组员直接选中远程分支,直接右键checkout as ,此时让你输入一个分支名,你就默认就行,保持和远程的分支一致,确定之后就切换到新分支了。
假如线上发生问题,需要解决线上问题,需要在master创建bugfix分支,解决线上问题。
2.9、切换分支
切换分支,只需要选中分支,然后选择checkout,就可以切换分支
2.10、版本比较
对代码修改后,可以点击对比按钮,对比差异
3.场景分析
基于实战模式,我们做一个综合练习
当前的开发环境如下,我们每个人都对这个项目已经开发一段时间,接下来我们要切换成团队开发模式。
也就是我们由一个团队来完成这个项目实战的内容。团队有组长和若干组员组成(组长就是开发中的项目经理)。
所有操作都在idea中完成。
练习场景如下:
1、由组长,基于本项目创建本地仓库;创建远程仓库,推送项目到远程仓库。(真实环境:项目经理创建空的项目推送,然后逐步添加内容,提交并推送)
2、每一位组员从远程仓库克隆项目到idea中,这样每位同学在自己电脑上就有了一个工作副本,可以正式的开始开发了。我们模拟两个组员(组员A、组员B),克隆两个工作区。
3、组员A修改工作区,添加到暂存区,提交到本地仓库。如果需要分享代码给另一个组员,推送到远程仓库。组员B可以直接从远程仓库获取代码,组员B可以获取组员A推送的代码。
4、组员A和组员B对同一个文件进行修改,提交代码到本地,这时需要分享代码给其他组员;组员A推送代码到远程仓库;组员B也推送代码到远程仓库,由于两位组员修改了同一个文件,推送失败。
解决方法:需要先获取远程仓库的代码到本地仓库,编辑冲突,提交并推送代码。
5、组员A接到组长命令,要对某功能进行重大的实验性调整;
操作思路:创建分支B1, 切换到B1分支,在B1分支上进行代码调整。B1分支达到了预期的目标,可以合并到原来的主干上;B1分支没有达到预期的目标,可以继续调整,也可以直接删除分支,切换到主分支继续开发。如果其他组员对主干上代码进行过调整,在合并时会产生冲突,需先解决冲突,再提交并推送。