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),如下圖所示。
- 勾選需要gti提交的檔案,不需要的不要勾選!!
- 提交資訊(Commit Message必填)
- 紅色框中左邊的是修改前的版本檔案,右邊是你增加後的版本檔案(這個需要點選之前勾選的檔案才可以看見)
- 確認無誤後,點選黃色框中的Commit。
如果No errors,那麼點選上圖的Commit。
1.2、開啟Push Commits
與1.1一樣,右鍵最左邊的工程檔案》點選git》repository》push
- 選擇1.1中提交的commits
- 右邊出現需要提交的檔案資訊,如果有遺漏的檔案,那麼先將這次提交,沒有提交的檔案再來步驟1.1與1.2。如果多出了檔案,那麼會很麻煩,提供一個解決方法吧,將你需要提供的檔案一個一個的右鍵git進行步驟1.1與1.2。
- 確認無誤後,點選push。
- 顯示push successful就成功了,你可以去gitLab上檢視你的提交了。
2、 進階流程(沒那麼簡單)
很多時候我們在push的時候(1.2中的第3步),並不是顯示成功,而是如下圖所示,push遠端倉庫被拒絕。這時,你不要點選Merge進行強制提交,你需要點選右上角的×,
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、基本流程,一次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,成功後本地與遠端倉庫就完全一樣了。