原文:
作者:呼嚕嚕睡
鏈接:https://www.jianshu.com/p/56ba959e4279
來源:簡書
不知不覺,svn已經退居歷史,git閃亮登場。現在的項目多人協同開發,首選git,開發工具idea用的比較多,所以,如何在idea上操作git成為了一個需要學會的小技能。
如果你被git的本地分支、遠程分支、合並、解決沖突等操作弄得不知所措。時間允許的話,先看一遍git官網的中文手冊吧,內容由淺入深,從原理到命令操作,都有詳細的介紹。
下面來說明idea上git的常見操作。
首先假設你已經安裝好了git以及idea,接下來在idea上做一下配置,即配置git.exe的路徑。
idea不過是做了可視化界面,但所有操作其實內部還是會委托給git.exe去執行。所以,如果你是高手,直接用命令行操作git會更加暢快。
首先假設我們的開發流程是這樣的:
1、開發人員a從遠端git倉庫的master分支克隆一份到本地,本地的分支名稱為branch-a,隨后開發a提交修改到本地;同樣的開發人員b從遠端git倉庫克隆一份到本地,本地的分支名稱為branch-b,隨后開發b提交修改到本地;
2、每次推送到遠程分支的時候,最好先拉取遠端master分支,將其最新的更改合並到本地分支,然后再推送本地分支到自己的遠端分支。這樣的操作是為了減少有代碼沖突時不能合並分支的情況。沖突在拉取master合並到本地分支的時候去解決。所以開發a在將自己的代碼推送到遠端分支的時候,先拉取master分支,由於這個時候沒有人將自己的分支合並到master,所以不會有任何沖突和問題。現在開發a放心的把自己的本地分支branch-a推送到遠端分支branch-a。
3、開發a發起了合並代碼的請求:將遠端分支branch-a合並到master分支。
4、開發組長收到合並請求,代碼審核通過之后,並通過對比沒有發現沖突和問題,於是將遠端的branch-a合並到了master分支。
5、這個時候開發b也想要推送修改到遠端分支,所以他先拉取master分支,然后發現代碼沖突了,因為開發a和開發b都對同一個文件的同一行代碼進行了不同的修改。開發b解決了沖突,將修改推送到遠端分支branch-b,並發起合並請求。
6、開發組長審核之后,合並遠端分支branch-b到master分支。
7、繼續各自修改代碼,提交,拉取,推送,發起合並請求。
1、首先為了方便,在github上先建立一個倉庫:
注意的是,該倉庫需要首先放入一些文件,然后才會有master分支。然后其余人員才可以克隆並操作。
2、開發a克隆倉庫:
3、下拉下來的本地分支名稱默認是master,將其修改為branch-a。(idea右下角)
這樣做的目的是,便於本地分支切換,否則分不清哪個分支對應遠端的分支了。
現在我們看到了,本地分支只有branch-a,當前本地分支是branch-a,遠端分支有origin/master分支。
4、為了演示方便,我在本地新建分支branch-b:
現在本地有兩個分支了:
開發a在分支branch-a上開發,開發b在分支branch-b開發,互相不影響。
5、接下來切換到branch-a,開發a進行開發:
點擊branch-a > checkout。
這個操作的意思是:從本地的.git文件中檢出branch-a,工作目錄的文件就會變成branch-a的文件。
6、在branch-a中我們添加文件a.txt:
文件第一行是:心情很不錯。
7、接着開發a就把修改提交到本地git了:
寫上提交信息,點擊commit就提交到本地倉庫了。
8、在推送到遠端分支的時候,先拉取遠端master分支的代碼。在拉取的時候,會自動合並到本地當前分支上去。
下面這塊區域說明,沒有什么需要更改和沖突的文件,可以放心推送:
這里本地是branch-a,我們想要推送到遠端的分支也為branch-a,點擊修改分支名稱,推送:
9、現在開發a推送到了遠端分支branch-a。開發a需要發起合並請求:
10、開發組長進行代碼審查和合並:
2021-11-29
11、現在開發b也是一樣的進行文件添加,不過在a.txt中第一行添加的是:心情很喪
現在開發b將修改提交到本地git。在推送之前他拉取遠端master,發現了沖突:
點擊merge:
處理完沖突,點擊apply。也可以去文件夾下手動解決沖突。
我解決完是這樣的:
12、將解決完沖突的文件提交到本地git。然后推送到遠端分支branch-b。最后合並分支。由於步驟類似,我就不詳細說明了。
13、開發a、開發b現在拉取遠端master,看到的是一樣的內容了。
14、繼續后續開發。
git操作本身不難,但是要對git的基本概念有一個了解才行。如果覺得idea的操作有點難以理解,可以試試sourceTree這個可視化工具。它可以看到所有本地和遠程分支,隨意切換,拉取,刪除分支。可以看到每次提交的修改點,歷史記錄的每個人的提交都可以去查看並比較。使用這個軟件基本上是無腦操作,但缺點就是安裝起來需要一點耐心。各位看官仁者見仁,智者見智吧。把工作完成是第一位的,工具能夠達到目的就行了。