11.IntelliJ IDEA 下的版本控制介紹

IntelliJ IDEA 下的版本控制介紹

這一章節放在這麼靠前位置來說是由於版本控制在我心目中的地位比後面的實戰知識點都來得重要。不論是我的開發或是團隊開發,版本控制都是能夠很好地被使用的,目前我找不到任何開發者不使用版本控制的理由。並且對於 IDE 來說,集成版本控制的自己就是它最大的亮點之一,不少開發者也是爲此而使用它。html

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

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 也能夠方便管理咱們的項目。github

SVN 主要使用的版本有 1.六、1.七、1.8,最新的是 1.9。推薦你們使用 1.8 的。若是你的項目使用的是 1.6 的版本,在安裝 1.8 以後是能夠直接對項目文件進行升級的,因此無需擔憂,也所以更加推薦你們使用 1.8。apache

SVN 的使用

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

SVN 的使用

  • 如上圖標註 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 的使用

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

Github 的配置和使用

Github 的使用

  • 如上圖標註 1 所示,填寫你的 Github 登陸帳號和密碼,點擊 Test 能夠進行測試是否能夠正確連上。

Github 的使用

  • 如上圖標註 1 所示,支持直接從你當前登陸的 Github 帳號上 Checkout 項目。

Github 的使用

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

Github 的使用

版本控制主要操做按鈕

版本控制主要操做按鈕

  • 如上圖標註 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,使用其餘版本控制可能有些按鈕有差別。):svn

  • Reformat code 格式化代碼,若是是 Web 開發建議不要勾選,由於格式化 JSP 類文件,格式化效果很差。若是都是 Java 類則能夠安心格式化。工具

  • Rearrange code 從新編排代碼,IntelliJ IDEA 支持各類複雜的編排設置選項,這個會在後面說。設置好了編碼功能以後,這裏就能夠嘗試勾選這個進行自動編排。
  • Optimize imports 優化導入包,會在自動去掉沒有使用的包。這個建議都勾選,這個只對 Java 類有做用,因此不用擔憂有反作用。
  • Perform code analysis 進行代碼分析,這個建議不用在提交的時候處理,而是在開發完以後,要專門養成對代碼進行分析的習慣。IntelliJ IDEA 集成了代碼分析功能。
  • Check TODO 檢查代碼中的 TODOTODO 功能後面也會有章節進行講解,這裏簡單介紹:這是一個記錄待辦事項的功能。
  • Cleanup 清除下版本控制系統,去掉一些版本控制系統的錯誤信息,建議勾選。
  • 如上圖標註 4 所示,填寫提交的信息。
  • 如上圖標註 5 所示,Change list 改變列表,這是一個下拉選項,說明咱們能夠切換不一樣的 Change list,提交不一樣的 Change list 文件。
  • 如上圖標註箭頭所示,咱們能夠查看咱們提交歷史中使用的 Commit Message,有些時候,咱們作得是同一個任務,可是須要提交屢次,爲了更好管理項目,建議是提交的 Message 是保持一致的。

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

  • 如上圖標註箭頭所示,若是你使用的 Git,點擊此位置能夠切換分支和建立分支,以及合併、刪除分支等操做。

SVN 的使用

SVN 的這個窗口有的 IntelliJ IDEA 上叫 Changes,有的叫 Version Control,具體是什麼緣由引發這樣的差別,我暫時還不清楚。可是無論叫法如何裏面的結構是同樣的,因此對使用者來說沒多大影響,可是你須要知道他們實際上是同樣的功能便可。

SVN 的使用

上圖 Local Changes 這個 Tab 表示當前項目的 SVN 中各個文件的總的狀況預覽。這裏的 Default 是 IntelliJ IDEA 的默認 change list 名稱,no commit 是我本身建立的一個change list,我我的有一個習慣是把一些暫時不須要提交的先放這個 list 裏面。change list 很經常使用並且重要,本文前面也有強調過了,因此必定好認真對待。unversioned Files 表示項目中未加到版本控制系統中的文件,你能夠點擊 Click to browse,會彈出一個彈出框列表顯示這些未被加入的文件。

SVN 的使用

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

總的來講,SVN 這個功能用來管理和審查開發團隊中人員的代碼是很是好用的,因此很是很是建議你必定要學會該功能。

相關文章
相關標籤/搜索