簡(jiǎn)述IDEA集成Git在實(shí)際項(xiàng)目中的運(yùn)用
1.企業(yè)實(shí)際項(xiàng)目中Git的使用
在實(shí)際的企業(yè)項(xiàng)目開發(fā)中,我們一般Java的項(xiàng)目在公司都有自己的局域網(wǎng)代碼倉(cāng)庫(kù),倉(cāng)庫(kù)上存放著很多的項(xiàng)目。以我工作過的公司如華為的項(xiàng)目,一般是存放在企業(yè)內(nèi)部的CodeHub上;CETC電科是存放在碼云Gitee的企業(yè)版?zhèn)}庫(kù)上。而基于Git的使用不再是老掉牙的原始Git命令行,或者是一般的TortoiseGit。
我們?cè)谄髽I(yè)中開發(fā)經(jīng)常使用的是基于IDEA集成Git工具進(jìn)行代碼的提交,既方便又快捷。同時(shí)也是很多有經(jīng)驗(yàn)的面試官會(huì)常用來(lái)面試考驗(yàn)培訓(xùn)班新手和實(shí)際開發(fā)者的常規(guī)性面試問題。
其實(shí)企業(yè)開發(fā)規(guī)范的IDEA提交代碼也就那么點(diǎn)要掌握的知識(shí):Git Clone拉代碼倉(cāng)庫(kù)(項(xiàng)目)、IDEA集成git管控項(xiàng)目、Commit/Push、Pull/Stash;當(dāng)然這是在IDEA中的操作,一個(gè)字,熟能生巧,就是敏捷。下面我們就簡(jiǎn)單來(lái)梳理和掌握吧。
我這里以Gitee上面的一個(gè)開源項(xiàng)目:若依來(lái)說(shuō)明,下面是這個(gè)項(xiàng)目的地址,其實(shí)和企業(yè)中的項(xiàng)目開發(fā)類似,大家可以把它想象成是一個(gè)企業(yè)內(nèi)網(wǎng)的托管代碼的倉(cāng)庫(kù)地址。
https://gitee.com/zhangmrit/ruoyi-cloud?_from=gitee_search

1.1.項(xiàng)目的Git Clone
進(jìn)入到項(xiàng)目中,第一天你肯定得搭個(gè)環(huán)境、拉個(gè)項(xiàng)目,熟悉一下這個(gè)項(xiàng)目的代碼吧。所以我們來(lái)把這個(gè)項(xiàng)目從Gitee拉取到我們本機(jī)開發(fā)的電腦上。
這個(gè)我沒什么好說(shuō)的,你是用老烏龜還是IDEA都能把這個(gè)項(xiàng)目拉取到本地。就是復(fù)制代碼庫(kù)的地址,使用老烏龜?shù)腉it Clone使我們一般的方法,直接可以把項(xiàng)目代碼Clone到本地代碼庫(kù)。

而重點(diǎn)是IDEA中的配置,老烏龜落后了,不敏捷,項(xiàng)目都用IDEA,你一個(gè)人好意思說(shuō)你沒用過~~~,尷尬。
在Git中找到Clone,將剛才復(fù)制下來(lái)的URL地址粘貼進(jìn)去,之后點(diǎn)擊下面的Clone按鈕即可。(我是用的IDEA2021,公司都用最新版本,用著爽?。。?/p>

好了項(xiàng)目Clone完畢了,IDEA會(huì)自動(dòng)提示你在新窗口中打開我們Clone下來(lái)的項(xiàng)目,選擇New Window,在新打開的窗口中就可以看到你Clone的項(xiàng)目,配置好Maven之后,就可以讓它去下載對(duì)應(yīng)的依賴構(gòu)建你的項(xiàng)目了。一般公司的項(xiàng)目就像這個(gè)開源項(xiàng)目一樣,構(gòu)建依賴還是有點(diǎn)久的,10分鐘左右吧。哈哈,漫長(zhǎng)~

經(jīng)過這個(gè)步驟,我們就完成了公司項(xiàng)目的拉取和本地構(gòu)建的工作,IDEA還是很nice的!
1.2.IDEA集成Git管控項(xiàng)目
在實(shí)際項(xiàng)目開發(fā)中,我們剛才拉取的分支是master分支,也就是主分支,這個(gè)一般是發(fā)布版本分支。而我們一般開發(fā)使用Dev分支,不會(huì)直接在master分支上進(jìn)行開發(fā)。所以在公司我們會(huì)看到Clone的分支上有很多分支,我們需要選擇對(duì)應(yīng)的分支進(jìn)行拉取開發(fā),一般我們會(huì)要求在項(xiàng)目上Fork自己的代碼倉(cāng)庫(kù),單獨(dú)自己構(gòu)建一個(gè)代碼庫(kù),免得你在master或者大dev分支上亂搞。而對(duì)應(yīng)Java團(tuán)隊(duì)開發(fā)這是非常必要的。
所以我們忘記上面的操作,重新拉取一遍自己的分支。
①Fork自己的代碼倉(cāng)庫(kù):

②使用Fork的url按照1.1中的步驟重新構(gòu)建自己的項(xiàng)目,同時(shí)說(shuō)明一下在IDEA中對(duì)應(yīng)Git的使用需要關(guān)聯(lián)本機(jī)上安裝的Git.exe位置:

1.3.Commit和Push操作
可以看到若依這里有兩個(gè)分支:一個(gè)是master分支,另外一個(gè)是nacos分支,在公司中可能除了master分支外就是dev分支,或者是test分支等等很多分支,我們一般選擇dev分支的代碼進(jìn)行checkout即可。這里我切換到了nacos分支(假裝它是dev分支)。實(shí)際操作也就是選擇對(duì)應(yīng)的分支進(jìn)行切換就行。

很快我就發(fā)現(xiàn)了項(xiàng)目中的GenUtils中的代碼注釋有問題,這里進(jìn)行了對(duì)應(yīng)修改補(bǔ)充,使用Git的Commit命令,可以聯(lián)合Push命令進(jìn)行遠(yuǎn)端代碼的推送。
但是注意:在推送的過程中,我們開發(fā)項(xiàng)目可能有別的同時(shí)已經(jīng)向總的版本Dev分支上提交了新的代碼,那么我們進(jìn)行Push的同時(shí)需要Pull拉取遠(yuǎn)端的Dev分支上最新的代碼看是否存在沖突Confilct,如果有沖突,需要優(yōu)先解決沖突。
添加遠(yuǎn)端Dev分支(總的Dev分支,項(xiàng)目的大開發(fā)分支:所有人的代碼都統(tǒng)一合入到這個(gè)大Dev_remote分支上)

Pull拉取大分支上最新的代碼:

選擇Git -- Commit提交自己的代碼,同時(shí)可以選擇Push將代碼推送到local的Fork倉(cāng)庫(kù)

1.4.創(chuàng)建Pull Request進(jìn)行Dev代碼合并
這里就是把自己的代碼向Dev大的開發(fā)分支合并,提交自己的工作量代碼啦!
這里需要我們點(diǎn)擊Pull Requests,新建一個(gè)合并請(qǐng)求,用于將自己寫的代碼向遠(yuǎn)端總的Dev分支上合并代碼。

這樣就完成了自己開發(fā)分支的代碼提交。
1.5.Pull和Stash操作
剛才已經(jīng)說(shuō)明了,Pull操作就是從遠(yuǎn)端分支拉取代碼,更新最新的代碼到自己本地代碼庫(kù)。對(duì)應(yīng)操作為:Git -- Pull
選擇對(duì)應(yīng)是Dev分支的Url就行(開發(fā)大版本庫(kù)的Url),不是個(gè)人Fork的那個(gè)開發(fā)倉(cāng)庫(kù)地址。

Stash操作:
Stash可以在你寫了很多的代碼類時(shí),比如有10-20多個(gè)新文件,我一下子從遠(yuǎn)端拉取會(huì)有很多沖突的時(shí)候,我就可以用Stash操作把自己的代碼優(yōu)先推送到本地倉(cāng)庫(kù)。
如下,我這里寫了一個(gè)很完美的RedisUtil工具類,但是和遠(yuǎn)端上面有了一個(gè)Redis工具類,我這個(gè)工具類就顯得多余,但是我又不想有沖突,這里就用IDEA的Stash緩存我的代碼。

點(diǎn)擊Create Stash之后,你本地的所有新文件更新的代碼都會(huì)暫存到本地倉(cāng)庫(kù)中,沖突文件也會(huì)從項(xiàng)目中消失,這樣你就可以拉取Pull到Dev最新的代碼,完全不用擔(dān)心有任何沖突(這里就不同于直接Commit從遠(yuǎn)端Pull代碼,如果有沖突Pull不會(huì)成功的,會(huì)有很多沖突的文件需要處理)。
Stash之后,可以直接絲滑地拉取遠(yuǎn)端代碼。
之后使用Unstash Changes,選擇對(duì)應(yīng)的Stashes節(jié)點(diǎn),就可以將原來(lái)的文件又恢復(fù)到本地,這個(gè)時(shí)候再解決沖突即可,這樣保證了我們寫代碼的爽快感,而又能及時(shí)獲取同步最新的代碼庫(kù)信息。在協(xié)同編程中非常常用。
Stash更詳細(xì)的解釋可以參考另一篇博文:Git中的Stash Changes和UnStash Changes用法
以上就是企業(yè)項(xiàng)目開發(fā)中涉及IDEA中Git開發(fā)的主要要知道的技能點(diǎn),無(wú)論是用IDEA還是老烏龜?shù)腉it提交工具,哪個(gè)順手哪個(gè)能提高效率就用哪個(gè)。但是項(xiàng)目團(tuán)隊(duì)成員都用你不能不知道,不知道也要及時(shí)去學(xué)習(xí),補(bǔ)上自己的遺漏點(diǎn)。
多做,少想,少發(fā)言,行動(dòng)的巨人永遠(yuǎn)大于思想的矮子。
博文參考:
完整教程-idea使用git進(jìn)行項(xiàng)目管理(總結(jié)版)
到此這篇關(guān)于IDEA集成Git在實(shí)際項(xiàng)目中的運(yùn)用的文章就介紹到這了,更多相關(guān)IDEA集成Git內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Linux下Java Python啟動(dòng)管理腳本方便程序管理
這篇文章主要為大家介紹了Linux下Java/Python啟動(dòng)管理腳本方便程序管理,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11
java 并發(fā)編程之共享變量的實(shí)現(xiàn)方法
這篇文章主要介紹了java 并發(fā)編程之共享變量的實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2019-09-09
Spring事件監(jiān)聽機(jī)制之@EventListener實(shí)現(xiàn)方式詳解
這篇文章主要介紹了Spring事件監(jiān)聽機(jī)制之@EventListener實(shí)現(xiàn)方式詳解,ApplicationContext的refresh方法還是初始化了SimpleApplicationEventMulticaster,發(fā)送事件式還是先獲取ResolvableType類型,再獲取發(fā)送監(jiān)聽列表,需要的朋友可以參考下2023-12-12
Maven搭建springboot項(xiàng)目的方法步驟
這篇文章主要介紹了Maven搭建springboot項(xiàng)目的方法步驟,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-04-04

