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提交工具,哪個順手哪個能提高效率就用哪個。但是專案團隊成員都用你不能不知道,不知道也要及時去學習,補上自己的遺漏點。

多做,少想,少發言,行動的巨人永遠大於思想的矮子。

博文參考:

完整教程-idea使用git進行專案管理(總結版)