1. 程式人生 > >idea intellij使用——git

idea intellij使用——git

idea intellij使用——git

idea intellij這款IDE使用廣泛,同時越來越多的開發專案使用gitLab,因此快速掌握idea intellij中的git功能有利於提高開發效率。

簡述前奏:對於開發者而言,首先從git專案中將專案下載下來(git clone 或者 直接網頁下載壓縮包),然後根據需求修改程式碼,這時我們就需要使用git工具了。

1、基本流程(熟悉流程)

1.1、開啟commit changes

右鍵最左邊的工程檔案》點選git》選擇Commit Directory(如何你選擇的是git一個檔案,這裡出現的是Commit File),如下圖所示。
在這裡插入圖片描述

  1. 勾選需要gti提交的檔案,不需要的不要勾選!!
  2. 提交資訊(Commit Message必填)
  3. 紅色框中左邊的是修改前的版本檔案,右邊是你增加後的版本檔案(這個需要點選之前勾選的檔案才可以看見)
  4. 確認無誤後,點選黃色框中的Commit。
    在這裡插入圖片描述
    如果No errors,那麼點選上圖的Commit。

1.2、開啟Push Commits

與1.1一樣,右鍵最左邊的工程檔案》點選git》repository》push
在這裡插入圖片描述

  1. 選擇1.1中提交的commits
  2. 右邊出現需要提交的檔案資訊,如果有遺漏的檔案,那麼先將這次提交,沒有提交的檔案再來步驟1.1與1.2。如果多出了檔案,那麼會很麻煩,提供一個解決方法吧,將你需要提供的檔案一個一個的右鍵git進行步驟1.1與1.2。
  3. 確認無誤後,點選push。
  4. 顯示push successful就成功了,你可以去gitLab上檢視你的提交了。
成功!!

2、 進階流程(沒那麼簡單)

很多時候我們在push的時候(1.2中的第3步),並不是顯示成功,而是如下圖所示,push遠端倉庫被拒絕。這時,你不要點選Merge進行強制提交,你需要點選右上角的×
在這裡插入圖片描述

圖2.1

2.1、pull最新的版本:

右鍵最左邊的工程檔案》點選git》repository》pull。如下圖所示,點選pull按鈕將最新的版本下載下來。
在這裡插入圖片描述

2.2、如果顯示下圖所示的pull資訊則表明成功

在這裡插入圖片描述

2.3、回退資訊

不是每個人都是直接pull成功,往往會出現以下資訊——Git Pull Failed
在這裡插入圖片描述
那麼你需要點選View them,進行回退資訊,如下圖所示。

在這裡插入圖片描述
上圖告訴你需要回退的檔案有兩個(藍顏色的),雙擊左鍵兩下進入其中一個檔案,如下圖所示,左邊是本地git中的某一版本,右邊是你目前的程式碼,為了能夠將遠端倉庫的程式碼pull下來,你需要將自己的程式碼給替換掉,即點選下圖中間的白色雙箭頭。當所有檔案(這裡是兩個)都沒有白色箭頭時,即表明本地git倉庫與遠端git倉庫同步了,可以pull檔案了,即再次重複pull步驟,將檔案拉下來。
在這裡插入圖片描述

2.4、回退資訊(續)

有些時候會遇見如下圖的情況,橘色框中有很多不重要的檔案,對於工程沒有太大的影響,這時你可以點選黃色框中的按鈕(revert)。
在這裡插入圖片描述
將下圖黃色框中的所有檔案勾選,點選Revert按鈕即可。
當下圖框中沒有任何檔案時,表明已經可以pull遠端倉庫了。
在這裡插入圖片描述

2.5 總結

因此最直接的步驟:
無論啥情況,先pull,後push

3、終極辦法

無論如果都有解決不了的莫名問題!
這時,另外建立一個檔案,git clone 專案,將自己修改的檔案複製過去,再push,絕對沒問題!

4、理解git

經過上面的一頓操作,至少你已經可以將專案push進遠端工程專案中了,不過這時我們只知其然不知其所以然,那麼接下來理解git,這樣你就可以理解為什麼需要這樣做了

首先我們需要明白兩個概念:本地倉庫與遠端倉庫。可以這麼說,我們遇見的一切問題都是這**兩個倉庫不同步**造成的。

在這裡插入圖片描述

圖4.1
之前所有操作過程可以用圖4.1表示。有了圖4.1,我們再來回看之前的操作過程。

4.1、基本流程,一次push就成功

正如圖4.1所示,本地從遠端倉庫clone專案到了本地,那麼本地就有了一個與遠端完全同步的倉庫,當我們修改了程式碼後,首先需要在本地提交(commit),這樣就新生成了一個版本,自然而然,當你push遠端倉庫時,遠端倉庫版本新生成一個與本地一樣的版本,與本地保持同步了,OK,push成功!

4.2、進階過程,需要2次push

事物一般不會一帆風順,總是在曲折中前進
一個專案不可能只有你一個人在提交,總是有其他人在提交,因此當你在本地生成版本三時,遠端倉庫有了版本二,這時你去提交將會造成衝突!(具體例子,其他人修改了fileA,你也修改了fileA,那麼遠端倉庫怎麼知道最終儲存誰的版本,除非你強制提交,將其他人的資訊覆蓋掉,這樣你是不是理解了圖2.1中,點選×,而不是點選Merge按鈕了)。
這時,你需要從遠端倉庫中pull檔案,將版本二與版本三合併成新的版本四,再push版本四。

證明:
如圖4.2與圖4.3所示,這是提交成功後的檢視歷史版本號,本地倉庫與遠端倉庫一模一樣!
當本地提交後,生成了圖4.2的第二行綠框的版本——b4361d0,當然push失敗,所以從遠端倉庫pull檔案下來,合併後生成第一行的版本——6b7431a95。同時,本地倉庫也會新新增第三行的版本(pull之前是沒有的),最後再push,成功後本地與遠端倉庫就完全一樣了。
在這裡圖片描述

圖4.2

在這裡插入圖片描述

圖4.3