IDEA的Git圖形操作

在 ofollow,noindex"> Git
使用 文中介紹了常用的 git
操作,通過各種命令提供常用的功能,例如提交檔案、檢視修改等,但是手輸命令檢視結果的方式總不如圖形介面來的更直觀。
IDEA
或者 IntelliJ IDEA
是 JetBrains
公司提供的一款優秀的 Java
整合開發環境 (IDE)
,通過使用外掛,可以支援多種程式語言開發使用。
這裡不討論 IDEA
有多優秀,因為該工具已足夠優秀。這裡只介紹該工具如何簡化工作中版本控制相關的操作。
配置版本控制系統
File > Other Settings > Default Settings
進入 Default Settings
設定框

在 Default Settings
彈出框中選擇 Version Control > Git
配置本地的 Git
目錄即可

IDEA
中存在兩種級別的設定,工程級別和全域性級別。在 File
選單展開中, Settings
和 Project Structure
兩項中的 部分設定 為對當前工程的設定,對其他工程不生效,為工程級別的設定。在 Other Settings
子選單中的 Default Settings
和 Default Project Structure
兩項為對全域性的設定,該全域性級別的設定相對工程級別而言,選項較少。
參考 IDEA
幫忙文件 Project-level settings and structure 可知,在進行工程級別的設定中, Settings
和 Project Structure
中的某些設定項,若帶有如下 Project configurable
圖示,則表明這些設定項為區分級別設定項,在此處的設定只對當前工程有效;若不帶有 Project configurable
圖示,則表示此處的設定即為全域性設定,對所有工程有效。觀察 Other Settings
子選單中的 Default Settings
和 Default Project Structure
中的設定項可知,該選單中的所有設定項皆帶有 Project configurable
圖示。

Project configurable
示例說明:

project-level
觀察圖 project-level
的設定,其中 File Encodings
為區分級別設定項,所以在 Settings
中的設定只對當前工程有效。 File Types
的設定則為全域性設定。

IDE-level
觀察圖 IDE-level
的設定,其中的設定項全部為區分級別設定項,在此進行設定則對所有工程生效。
開啟本地工程
File > Open
選擇工程目錄

這裡以 git
工程 gittest
為例。
分支切換
在工程介面右下角,點選 master
分支,會在 Local Branchs
中展示本地所有分支,點選想要切換的分支,會彈出子選單,選擇 Checkout
即表示切換到對應的分支。

由操作可知, IDEA
中涉及的相關操作都與 git
命令的命名相關,只是這裡以圖形介面的方式展示出來。
這裡並沒有新增遠端倉庫,如果新增遠端倉庫,則 fetch
拉取遠端倉庫資訊後,遠端分支也會顯示在這裡,切換分支操作與本地分支切換相同,並且切換後會自動關聯本地分支與遠端分支。
新增遠端倉庫
VCS > Git > Remotes
顯示遠端倉庫管理視窗

在遠端倉庫管理視窗中,可以增加、刪除、修改遠端倉庫。

拉取倉庫更新資訊
VCS > Git > Fetch
會拉取遠端分支的更新資訊。
VCS > Git > Pull
會拉取遠端分支的更新資訊並 merge
到本地關聯分支。

修改跟蹤檔案
IDEA
會實時顯示已跟蹤檔案是否發生了修改,修改內容會以顏色區分,並在下方的 Version Control
視窗的 Local Changes
中記錄改動檔案。

新增並跟蹤檔案
新增檔案時,會自動提示是否加入 git
倉庫,進行跟蹤記錄。

若選擇框中並沒有選擇加入倉庫,則檔案會區分顏色顯示,並且在下方的版本控制視窗中列出未跟蹤檔案。

後續可以選擇具體檔案進行再次加入。
選擇檔案右鍵, Git > Add
可以將檔案加入跟蹤狀態。

新加入檔案與新加入檔案內容基本一個色,用於標識加入版本控制系統的新內容。

提交修改
在下方的版本控制視窗中選擇 Default
右鍵,選擇 Commit Changes
提交修改。

提交視窗由上及下可以分為三個部分(右側的程式碼檢查暫且不提),第一個視窗展示了修改的檔案,並且在視窗右下角會顯示檔案修改型別及數量;第二個視窗是輸入視窗,輸入提交資訊;第三個視窗顯示修改內容,以顏色區分,較為直觀,並且提供向下和向右箭頭,分別用於快速定位修改位置和切換修改檔案。在最下方的 commit
按鈕,可以選擇提交修改到本地倉庫,或者直接提交併且推送到遠端倉庫。

提交修改之後,下方的版本控制視窗中記錄的跟蹤修改置空,檔案處於未修改狀態。

分支比較
可以選擇單個檔案進行比較,也可以直接比較整個工程。
當前分支為 master
,選擇檔案,右鍵與 dev
分支進行比較

比較結果能夠以左右區分,並且標識不同顏色,較為直觀

當修改內容較多時,比較結果左上角的上下箭頭可以快速定位到修改位置;比較結果中間的雙向箭頭可以直接修改檔案內容,這裡如果點選的話,則表示將左側的差異同步到右側,即消除了 master
分支的修改內容,該操作可以進行分支同步或者修改撤回。
日誌檢視
在下方的版本控制視窗中,切換到 Log
標籤,則展示版本提交歷史。

可以指定分支 Branch
和提交人 User
進行過濾,並且左側提供搜尋框進行查詢提交記錄。右側會展示每一次提交的修改檔案,右鍵點選檔案選擇 Show Diff
也可以檢視修改內容。
版本回退、修改撤回
右鍵某一次提交記錄,在展開選單中選擇 Reset Current Branch to Here
進行版本回退,在此之後的修改和提交都會撤銷。選擇 Undo Commit
則表示撤銷當前這次提交,因為當前選中的是最新一次提交,所以才會有這個選項,若是歷史提交,則不會有該選項。

同步修改
剛剛對 fileForGitTest
檔案的修改,以及新增 testAddFile
檔案都是在 master
分支進行的修改,現在通過右下角切換分支到 dev
分支,若要同步 master
分支的某次提交到當前分支上,則可以使用 Cherry-Pick
操作。

右鍵某次提交,在展開選單中選擇 Cherry-Pick
即可。