很多git的基本命令在这里就不在详述了,这里会重点介绍IDEA中对gitee的操作以及实际使用的时候遇到的误区
1、配置Git忽略文件的重要性
在使用IDE集成git操作的时候,首先需要配置git的忽略文件,因为我们要push上远程库的仅仅只有我们编写的业务代码,如果说你没有配置.gitignore文件或者.gitignore文件覆盖内容不够详细,那么你就会遇到以下的问题:
李四本地的IDE环境跟他协同开发的伙伴张三很难保证完全一样,其中有maven环境问题,甚至jdk版本等等,如果说你配置了.gitignore文件,但是某些文件没有被覆盖到,比如项目根路径下的.idea,每一个maven创建的项目都会附加两个文件 .idea .iml ,通过百度百科我们得知:iml是IDEA的工程配置文件,里面是当前project的一些配置信息。.Idea存放项目的配置信息,包括历史记录,版本控制信息等
这两个文件是不需要push到远程库的,一旦push上去,协同开发的伙伴张三去pull李四搭好的框架时,就会把远程库中李四push的IDE配置环境(.idea,iml)一起pull下来,就会造成张三本地IDE出现不可预计的问题
总结一句话:
与项目的实际功能无关,不参与服务器上部署运行。把它们忽略掉能够屏蔽 IDE 工具之间的差异
2、git.ignore模板以及存放位置
git.ignore 文件模版内容如下:
# Compiled class file
*.class
# Log file
*.log
# BlueJ files
*.ctxt
# Mobile Tools for Java (J2ME)
.mtj.tmp/
# Package Files #
*.jar
*.war
*.nar
*.ear
*.zip
*.tar.gz
*.rar
# virtual machine crash logs, see
http://www.java.com/en/download/help/error_hotspot.xml
hs_err_pid*
.classpath
.project
.settings
target
.idea
*.iml
可以直接放在集成git项目的根目录下
一般直接重写覆盖集成git后为我们自动生成的模板即可
3、 定位 Git 程序
IDEA集成git需要安装git提供的插件,git分为github(国外速度慢),gitlab(局域网,需要搭建且局限性打),gitee(国内,速度快),基于他们的特性,以下只针对,对于我们来说比较有利的gitee进行介绍
安装完gitee插件后,在gitee官网注册自己的账号,并在idea中进行登录
在file/setting中找到Version Control
4、 初始化本地库
初始化本地库有两种方法
第一种:直接在创建好的项目里初始化本地库
第二种:在gitee官网创建仓库后,在本地的空文件夹git bash 后git clone 将创建的项目克隆下来,就会pull到.git文件,在将该文件直接复制到想要集成的项目中去即可
5、git基本操作在IDEA中的实现
添加到暂存区
右键点击项目选择 Git -> Add 将项目添加到暂存区
5.1 提交到本地库
右键点击项目选择 Git -> Commit 将项目添加到本地库
5.2、 切换版本
右键checkout切换到第二个版本
5.3、 创建分支
5.4、 切换分支
5.5、合并分支
1、正常合并(没有冲突)
如果代码没有冲突,分支直接合并成功,分支合并成功以后,代码自动提交,无需手动提交本地库。
2、合并(有冲突)
6、使用建议
1、不要直接在主线上做发开,适当使用分支
笔者在使用git管理项目的时候,就切身体会到直接在主线上做开发的问题所在:刚开始搭建基础架构的时候,将项目定性成小型偏中(对我个人而言哈),并且由两个人进行协同开发,所以我是直接在master上做开发,而我的同伴是另外创建一个分支进行开发,在项目进行迭代开发的过程中,我是一直往master提交并push,而我的同伴也会在他自己的分支去更新我推送的版本,这样就造成了一个问题,就是分支版本一直比master新,如果说想要将分支合并到master上(让master版本最新),就需要分支版本push上远程库后,在以当前为master去合并分支,这是比较麻烦的,而且也需要解决比较多的合并问题
2、创建忽略文件的时候一定要涉及到IDE的配置环境文件
笔者在使用的时候,忽略文件中少加了.idea,导致切换成同伴的分支时出现了大量的兼容性问题,笔者的同伴在切换笔者的分支时也同样遇到相同的问题,所以忽略文件一定要覆盖到位,还是前面那句话git.ignore 文件的内容是与项目的实际功能无关,不参与服务器上部署运行。把它们忽略掉能够屏蔽 IDE 工具之间的差异
3、Git commit与pull的先后顺序
在你从本地库push到远程之前,一定要先pull,保证本地库的版本是最新的;
在本地修改与远程代码无冲突的情况下,优先使用:pull->commit->push
在本地修改与远程代码有冲突的情况下,优先使用:commit->pull->push
以上内容为笔者个人拙见,如有不当,欢迎指教