IntelliJ IDEA 下的版本控制介紹


不管是個人開發或是團隊開發,版本控制都是可以很好地被使用的,目前我找不到任何開發者不使用版本控制的理由。而且對於 IDE 來講,集成版本控制的本身就是它最大的亮點之一,很多開發者也是為此而使用它。

在本章節中也會對 IntelliJ IDEA 的相關版本控制進行了介紹,會開始涉及到一些 IntelliJ IDEA 人性化設置,也希望你能從這一講開始認識到 IntelliJ IDEA 的優雅。

很多人認為 IntelliJ IDEA 自帶了 SVN 或是 Git 等版本控制工具,認為只要安裝了 IntelliJ IDEA 就可以完全使用版本控制應有的功能。這完全是一種錯誤的解讀,IntelliJ IDEA 是自帶對這些版本控制工具的支持插件,但是該裝什么版本控制客戶端還是要照樣裝的。

如上圖標注 1 所示,IntelliJ IDEA 對版本控制的支持是以插件化的方式來實現的。旗艦版默認支持目前主流的版本控制軟件:CVS、Subversion(SVN)、Git、 ClearCase、Mercurial、Perforce、TFS。又因為目前太多人使用 Github 進行協同或是項目版本管理,所以 IntelliJ IDEA 同時自帶了 Github 插件,方便 Checkout 和管理你的 Github 項目。

SVN 的配置

要在 IntelliJ IDEA 中使用 SVN,需要先安裝 SVN 客戶端或是 TortoiseSVN 這類圖形化工具,Windows 系統這里推薦安裝 TortoiseSVN,即使在不使用 IntelliJ IDEA 也可以方便管理我們的項目。

SVN 主要使用的版本有 1.6、1.7、1.8,最新的是 1.9。推薦大家使用 1.8 的。如果你的項目使用的是 1.6 的版本,在安裝 1.8 之后是可以直接對項目文件進行升級的,所以無需擔心,也因此更加推薦大家使用 1.8。

Subversion 官網下載:https://subversion.apache.org/download/#recommended-release

TortoiseSVN 官網下載:http://tortoisesvn.net/downloads.zh.html

如上圖箭頭所示,在安裝 TortoiseSVN 的時候,默認 command line client tools,是不安裝的,這里建議勾選上。

如上圖標注 1 所示,勾選 Use command line client

如上圖標注 2 所示,建議 svn 的路徑自己根據安裝后的路徑進行選擇,不然有時候 IntelliJ IDEA 無法識別到會報:Cannot run program "svn" 這類錯誤。

如上圖標注 3 所示,當使用一段時間 SVN 以后,發現各種 SVN 相關問題無法解決,可以考慮點擊此按鈕進行清除一下緩存。

根據目前的使用經驗來看,IntelliJ IDEA 下 SVN 的使用經歷並不算愉快,至少比 Git 不好用很多,經常遇到很多問題,所以這里也算是先給大家提個醒。如果緊急情況下 IntelliJ IDEA 無法更新、提交的時候,要記得使用 TortoiseSVN 來操作。

Git 的配置

要在 IntelliJ IDEA 中使用 Git,需要先安裝 Git 客戶端,這里推薦安裝官網版本。

Git 主要的版本有 1.X、2.X,最新的是 2.X,使用版本隨意,但是不要太新了,不然可能 IntelliJ IDEA 小舊版本會無法支持可能。

Git 官網下載:http://git-scm.com/

TortoiseGit 官網下載:http://download.tortoisegit.org/tgit/

如上圖標注 1 所示,確定好該路徑下是否有對應的可執行文件。

Github 的配置和使用

如上圖標注 1 所示,填寫你的 Github 登錄賬號和密碼,點擊 Test 可以進行測試是否可以正確連上。

如上圖標注 1 所示,支持直接從你當前登錄的 Github 賬號上 Checkout 項目。

如上圖標注 1 所示,支持把當前本地項目分享到你的 Github 賬號上。

如上圖標注 1 所示,支持創建 Gist。Github 的 Gist 官網地址:https://gist.github.com/

版本控制主要操作按鈕

如上圖標注 1 所示,對目錄進行右鍵彈出的菜單選項。

如上圖標注 1 所示,對文件進行右鍵彈出的菜單選項。

如上圖標注紅圈所示,為工具欄上版本控制操作按鈕,基本上大家也都是使用這里進行操作。

第一個按鈕:Update Project 更新項目。

第二個按鈕:Commit changes 提交項目上所有變化文件。點擊這個按鈕不會立馬提交所有文件,而是先彈出一個被修改文件的一個匯總框,具體操作下面會有圖片進行專門介紹。

第三個按鈕:Compare with the Same Repository Version 當前文件與服務器上該文件通版本的內容進行比較。如果當前編輯的文件沒有修改,則是灰色不可點擊。

第四個按鈕:Show history 顯示當前文件的歷史記錄。

第五個按鈕:Revert 還原當前被修改的文件到違背修改的版本狀態下。如果當前編輯的文件沒有修改,則是灰色不可點擊。

如上圖標注 1 所示,菜單欄上的版本控制操作區。

版本控制相關的常用設置說明

如上圖標注 1 所示,當前項目使用的版本控制是 Git。如果你不願意這個項目繼續使用版本控制可以點擊旁邊的減號按鈕,如果你要切換版本控制,可以點擊 Git,會出現 IntelliJ IDEA 支持的各種版本控制選擇列表,但是我們一般情況下一個項目不會有多個版本控制的。

如上圖標注 2 所示,Show directories with changed descendants 表示子目錄有文件被修改了,則該文件的所有上層目錄都顯示版本控制被概念的顏色。默認是不勾選的,我一般建議勾選此功能。

如上圖標注 1 所示,When files are created 表示當有新文件放進項目中的時候 IntelliJ IDEA 做如何處理,默認是 Show options before adding to version control 表示彈出提示選項,讓開發者決定這些新文件是加入到版本控制中還是不加入。如果不想彈出提示,則選擇下面兩個選項進行默認操作。

如上圖標注 2 所示,When files are deleted 表示當有新文件在項目中被刪除的時候 IntelliJ IDEA 做如何處理,默認是 Show options before removing from version control 表示彈出提示選項,讓開發者決定這些被刪除的是否從版本控制中刪除。如果不想彈出提示,則選擇下面兩個選項進行默認操作。

如上圖標注 1 所示,對於不想加入到版本控制的文件,可以添加要此忽略的列表中。但是如果已經加入到版本控制的文件使用此功能,則表示該文件 或 目錄無法再使用版本控制相關的操作,比如提交、更新等。我個人使用過程中發現在 SVN 上此功能不太好用,Git 上是可以用的。

上圖所示的彈出層就是本文上面說的 Commit Changes 點擊后彈出的變動文件匯總彈出層。
如上圖標注 1 所示,可以在文件上右鍵進行操作。
Show Diff 當前文件與服務器上該文件通版本的內容進行比較。
Move to Another Changelist 將選中的文件轉移到其他的 Change list 中。Change list 是一個重要的概念,這里需要進行重點說明。很多時候,我們開發一個項目同時並發的任務可能有很多,每個任務涉及到的文件可能都是基於業務來講的。所以就會存在一個這樣的情況:我改了 30 個文件,其中 15 個文件是屬於訂單問題,剩下 15 個是會員問題,那我希望提交代碼的時候是根據業務區分這些文件的,這樣我填寫 Commit Message 是好描述的,同時在文件多的情況下,我也好區分這些要提交的文件業務模塊。所以我一般會把屬於訂單的 15 個文件轉移到其他的 Change list中,先把專注點集中在 15 個會員問題的文件,先提交會員問題的 Change list,然后在提交訂單會員的 Change list。我個人還有一種用法是把一些文件暫時不提交的文件轉移到一個我指定的 Change list,等后面我覺得有必要提交了,再做提交操作,這樣這些文件就不會干擾我當前修改的文件提交。總結下 Change list 的功能就是為了讓你更好地管理你的版本控制文件,讓你的專注點得到更好的集中,從而提供效率。
Jump to Source 打開並跳轉到被選中。
如上圖標注 2 所示,可以根據工具欄按鈕進行操作,操作的對象會鼠標選中的文件,多選可以按 Ctrl 后不放,需要注意的是這個更前面的復選框是沒有多大關系的。
如上圖標注 3 所示,可以在提交前自動對被提交的文件進行一些操作事件(該項目使用的 Git,使用其他版本控制可能有些按鈕有差異。):
Reformat code 格式化代碼,如果是 Web 開發建議不要勾選,因為格式化 JSP 類文件,格式化效果不好。如果都是 Java 類則可以安心格式化。
Rearrange code 重新編排代碼,IntelliJ IDEA 支持各種復雜的編排設置選項,這個會在后面說。設置好了編碼功能之后,這里就可以嘗試勾選這個進行自動編排。
Optimize imports 優化導入包,會在自動去掉沒有使用的包。這個建議都勾選,這個只對 Java 類有作用,所以不用擔心有副作用。
Perform code analysis 進行代碼分析,這個建議不用在提交的時候處理,而是在開發完之后,要專門養成對代碼進行分析的習慣。IntelliJ IDEA 集成了代碼分析功能。
Check TODO 檢查代碼中的 TODO。TODO 功能后面也會有章節進行講解,這里簡單介紹:這是一個記錄待辦事項的功能。
Cleanup 清除下版本控制系統,去掉一些版本控制系統的錯誤信息,建議勾選。
如上圖標注 4 所示,填寫提交的信息。
如上圖標注 5 所示,Change list 改變列表,這是一個下拉選項,說明我們可以切換不同的 Change list,提交不同的 Change list 文件。
如上圖標注箭頭所示,我們可以查看我們提交歷史中使用的 Commit Message,有些時候,我們做得是同一個任務,但是需要提交多次,為了更好管理項目,建議是提交的 Message 是保持一致的。

如上圖標注箭頭所示,如果你使用的 Git,點擊此位置可以切換分支和創建分支,以及合並、刪除分支等操作。

SVN 的使用

SVN 的這個窗口有的 IntelliJ IDEA 上叫 Changes,有的叫 Version Control,具體是什么原因引起這樣的差異,我暫時還不清楚。但是不管叫法如何里面的結構是一樣的,所以對使用者來講沒多大影響,但是你需要知道他們其實是一樣的功能即可。

上圖 Local Changes 這個 Tab 表示當前項目的 SVN 中各個文件的總的情況預覽。這里的 Default 是 IntelliJ IDEA 的默認 change list 名稱,no commit 是我自己創建的一個change list,我個人有一個習慣是把一些暫時不需要提交的先放這個 list 里面。change list 很常用而且重要,本文前面也有強調過了,所以一定好認真對待。unversioned Files 表示項目中未加到版本控制系統中的文件,你可以點擊 Click to browse,會彈出一個彈出框列表顯示這些未被加入的文件。

上圖 Repository 這個 Tab 表示項目的 SVN 信息匯總,內容非常的詳細,也是我平時用最多的地方。如果你點擊這個 Tab 沒看到數據,是因為你需要點擊上圖紅圈這個刷新按鈕。初次使用下默認的過濾條件不是我上圖這樣的,我習慣根據 User 進行過濾篩選,所以上圖箭頭中的 Filter 我是選擇 User。選擇之后,如上圖標注 1 所示,顯示了這個項目中參與提交的各個用戶名,選擇一個用戶之后,上圖標注 2 所以會顯示出該用戶提交了哪些記錄。選擇標注 2 區域中的某個提交記錄后,標注 3 顯示對應的具體提交細節,我們可以對這些文件進行右鍵操作,具體操作內容跟本文上面提到的那些提交時的操作按鈕差不多,這里不多講。

總的來說,SVN 這個功能用來管理和審查開發團隊中人員的代碼是非常好用的,所以非常非常建議你一定要學會該功能。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM