1.企业实际项目中Git的使用
在实际的企业项目开发中,我们一般Java的项目在公司都有自己的局域网代码仓库,仓库上存放着很多的项目。以我工作过的公司如华为的项目,一般是存放在企业内部的CodeHub上;CETC电科是存放在码云Gitee的企业版仓库上。而基于Git的使用不再是老掉牙的原始Git命令行,或者是一般的TortoiseGit。
我们在企业中开发经常使用的是基于IDEA集成Git工具进行代码的提交,既方便又快捷。同时也是很多有经验的面试官会常用来面试考验培训班新手和实际开发者的常规性面试问题。
其实企业开发规范的IDEA提交代码也就那么点要掌握的知识:Git Clone拉代码仓库(项目)、IDEA集成git管控项目、Commit/Push、Pull/Stash;当然这是在IDEA中的操作,一个字,熟能生巧,就是敏捷。下面我们就简单来梳理和掌握吧。
我这里以Gitee上面的一个开源项目:若依来说明,下面是这个项目的地址,其实和企业中的项目开发类似,大家可以把它想象成是一个企业内网的托管代码的仓库地址。
https://gitee.com/zhangmrit/ruoyi-cloud?_from=gitee_search
1.1.项目的Git Clone
进入到项目中,第一天你肯定得搭个环境、拉个项目,熟悉一下这个项目的代码吧。所以我们来把这个项目从Gitee拉取到我们本机开发的电脑上。
这个我没什么好说的,你是用老乌龟还是IDEA都能把这个项目拉取到本地。就是复制代码库的地址,使用老乌龟的Git Clone使我们一般的方法,直接可以把项目代码Clone到本地代码库。
而重点是IDEA中的配置,老乌龟落后了,不敏捷,项目都用IDEA,你一个人好意思说你没用过~~~,尴尬。
在Git中找到Clone,将刚才复制下来的URL地址粘贴进去,之后点击下面的Clone按钮即可。(我是用的IDEA2021,公司都用最新版本,用着爽啊!)
好了项目Clone完毕了,IDEA会自动提示你在新窗口中打开我们Clone下来的项目,选择New Window,在新打开的窗口中就可以看到你Clone的项目,配置好Maven之后,就可以让它去下载对应的依赖构建你的项目了。一般公司的项目就像这个开源项目一样,构建依赖还是有点久的,10分钟左右吧。哈哈,漫长~
经过这个步骤,我们就完成了公司项目的拉取和本地构建的工作,IDEA还是很nice的!
1.2.IDEA集成Git管控项目
在实际项目开发中,我们刚才拉取的分支是master分支,也就是主分支,这个一般是发布版本分支。而我们一般开发使用Dev分支,不会直接在master分支上进行开发。所以在公司我们会看到Clone的分支上有很多分支,我们需要选择对应的分支进行拉取开发,一般我们会要求在项目上Fork自己的代码仓库,单独自己构建一个代码库,免得你在master或者大dev分支上乱搞。而对应Java团队开发这是非常必要的。
所以我们忘记上面的操作,重新拉取一遍自己的分支。
①Fork自己的代码仓库:
②使用Fork的url按照1.1中的步骤重新构建自己的项目,同时说明一下在IDEA中对应Git的使用需要关联本机上安装的Git.exe位置:
1.3.Commit和Push操作
可以看到若依这里有两个分支:一个是master分支,另外一个是nacos分支,在公司中可能除了master分支外就是dev分支,或者是test分支等等很多分支,我们一般选择dev分支的代码进行checkout即可。这里我切换到了nacos分支(假装它是dev分支)。实际操作也就是选择对应的分支进行切换就行。
很快我就发现了项目中的GenUtils中的代码注释有问题,这里进行了对应修改补充,使用Git的Commit命令,可以联合Push命令进行远端代码的推送。
但是注意:在推送的过程中,我们开发项目可能有别的同时已经向总的版本Dev分支上提交了新的代码,那么我们进行Push的同时需要Pull拉取远端的Dev分支上最新的代码看是否存在冲突Confilct,如果有冲突,需要优先解决冲突。
添加远端Dev分支(总的Dev分支,项目的大开发分支:所有人的代码都统一合入到这个大Dev_remote分支上)
Pull拉取大分支上最新的代码:
选择Git -- Commit提交自己的代码,同时可以选择Push将代码推送到local的Fork仓库
1.4.创建Pull Request进行Dev代码合并
这里就是把自己的代码向Dev大的开发分支合并,提交自己的工作量代码啦!
这里需要我们点击Pull Requests,新建一个合并请求,用于将自己写的代码向远端总的Dev分支上合并代码。
这样就完成了自己开发分支的代码提交。
1.5.Pull和Stash操作
刚才已经说明了,Pull操作就是从远端分支拉取代码,更新最新的代码到自己本地代码库。对应操作为:Git -- Pull
选择对应是Dev分支的Url就行(开发大版本库的Url),不是个人Fork的那个开发仓库地址。
Stash操作:
Stash可以在你写了很多的代码类时,比如有10-20多个新文件,我一下子从远端拉取会有很多冲突的时候,我就可以用Stash操作把自己的代码优先推送到本地仓库。
如下,我这里写了一个很完美的RedisUtil工具类,但是和远端上面有了一个Redis工具类,我这个工具类就显得多余,但是我又不想有冲突,这里就用IDEA的Stash缓存我的代码。
点击Create Stash之后,你本地的所有新文件更新的代码都会暂存到本地仓库中,冲突文件也会从项目中消失,这样你就可以拉取Pull到Dev最新的代码,完全不用担心有任何冲突(这里就不同于直接Commit从远端Pull代码,如果有冲突Pull不会成功的,会有很多冲突的文件需要处理)。
Stash之后,可以直接丝滑地拉取远端代码。
之后使用Unstash Changes,选择对应的Stashes节点,就可以将原来的文件又恢复到本地,这个时候再解决冲突即可,这样保证了我们写代码的爽快感,而又能及时获取同步最新的代码库信息。在协同编程中非常常用。
Stash更详细的解释可以参考另一篇博文:Git中的Stash Changes和UnStash Changes用法
以上就是企业项目开发中涉及IDEA中Git开发的主要要知道的技能点,无论是用IDEA还是老乌龟的Git提交工具,哪个顺手哪个能提高效率就用哪个。但是项目团队成员都用你不能不知道,不知道也要及时去学习,补上自己的遗漏点。
多做,少想,少发言,行动的巨人永远大于思想的矮子。
博文参考: