IntelliJ IDEA版本控制的概念

2018-11-11 11:38 更新

IntelliJ IDEA 提供與多個版本控制系統(tǒng)(在文檔中稱為 VCS)的集成。這包括支持特定于每個 VCS 的功能以及針對常見 VCS 任務(wù)的統(tǒng)一接口和管理。

IntelliJ IDEA 支持的版本控制系統(tǒng)

版本控制系統(tǒng)支持的集成列表由當(dāng)前啟用的插件集合決定。

IntelliJ IDEA 中受支持的版本控制系統(tǒng)(VCS)入門的基本原則非常相似,不過有些命令和設(shè)置是特定的,并且符合版本控制系統(tǒng)約定。除了常見信息之外,您還可以在以下部分找到特定于 VCS 的過程:

  • 使用 Git 集成
  • 使用 GitHub 集成
  • 使用 Subversion 集成
  • 使用 Mercurial 集成
  • 使用 CVS 集成
  • 使用 Perforce 集成
  • 使用 Visual SourceSafe 集成
  • 使用 ClearCase 集成
  • 使用 TFS 集成

統(tǒng)一的版本控制功能

IntelliJ IDEA 除了支持一般的和單獨的 VCS 命令外,還提供了幾個獨特的功能,可以簡化和加速任何版本控制系統(tǒng)的工作。

  • 對于啟用了 VCS 支持的項目,將標準 VCS 操作(提交、更新、還原、顯示差異和顯示歷史記錄)添加到主工具欄。
  • 提交并更新整個項目。
  • 用于配置通用版本控制系統(tǒng)設(shè)置的統(tǒng)一接口。
  • Changelists 支持所有集成的版本控制系統(tǒng)。
  • 接下來,上一頁、回滾、顯示差異操作可從已更改位置的專用裝訂線欄中獲得。
  • 查看文件/目錄的修訂歷史記錄。
  • 在重構(gòu)時自動檢出所有受影響的文件。
  • 高級版本控制工具窗口,具有多個專用選項卡:歷史記錄、狀態(tài)、更新信息等。

注意不同版本控制系統(tǒng)中的術(shù)語差異。例如,為了表示登記功能, Git 使用術(shù)語 “commit”, Subversion 使用 “submit” 等。

基于目錄的版本控制模型

IntelliJ IDEA 采用了基于目錄的版本控制關(guān)聯(lián)模型。將版本控制系統(tǒng)分配給項目目錄和作為項目的一部分或與之相關(guān)的其他目錄。版本控制下的目錄不需要位于項目根目錄下。他們可以存在于任何方便的位置。

.idea 目錄中的所有設(shè)置文件都都應(yīng)放在版本控制下,除了 workspace.xml(存儲您的本地首選項)之外。workspace.xml 文件應(yīng)該被標記為被 VCS 忽略。

變更列表

變更列表是文件中的一組更改,代表源代碼中的邏輯更改。在變更列表中指定的更改在提交(推送)之前不會存儲在存儲庫中。

對源文件所做的任何更改都會自動包含在活動列表中。最初,“默認更改列表”處于活動狀態(tài),但您可以使任何其他更改列表處于活動狀態(tài)?;顒恿斜盹@示在 "版本控制" 工具窗口的頂部, 其名稱將以粗體字體高亮。

除了默認的變更列表之外,還可以創(chuàng)建新的變更列表,刪除現(xiàn)有列表(默認的變更列表除外),以及在變更列表之間移動文件。

所有修改、刪除、版本和其他文件都在版本控制工具窗口中進行管理。從這個窗口你可以:

  • 提交(推)變更列表。
  • 創(chuàng)建新的變更列表(如果您想要關(guān)注某些文件和更改)。
  • 刪除現(xiàn)有的變更列表并設(shè)置默認的變更列表。
  • 在變更列表中回滾已修改的文件。
  • 將版本文件和目錄添加到版本控制中。
  • 在變更列表之間移動文件。
  • 顯示所選文件的差異。
  • 刷新 VCS 更改的列表。
  • 跳轉(zhuǎn)到變更列表中的源代碼。
  • 擱置(隱藏)和取消擱置(unstash)的改變。

本地、存儲庫和傳入更改

注意:分布式版本控制系統(tǒng)(例如 Git 和 Mercurial)不支持存儲庫和傳入更改。

IntelliJ IDEA 區(qū)分了三類更改: 本地、存儲庫和傳入。

  • 本地更改:您在本地工作副本中引入的更改,但尚未簽入到存儲庫中。
  • 存儲庫更改:您和其他團隊成員已經(jīng)檢入存儲庫的更改。
  • 傳入更改:已經(jīng)檢入到存儲庫中的更改,但尚未在本地檢出。

所有這些類型的更改都顯示在版本控制工具窗口的各個選項卡中。有關(guān)更改的信息存儲在歷史記錄緩存中。配置此緩存的大小以及在一般 VCS 設(shè)置中刷新信息的頻率。

本地歷史

在編輯、測試或編譯時,源代碼會不斷變化。任何版本控制系統(tǒng)都會跟蹤提交版本之間的差異,但提交之間的本地更改將被忽略。 “本地歷史記錄”是您的個人版本控制系統(tǒng),用于跟蹤計算機上源代碼的更改,并允許您在必要時比較版本和回滾更改。本地歷史記錄隨時聽候您的調(diào)遣,不需要任何步驟來啟用它。

本地歷史獨立于外部版本控制系統(tǒng),即使在不受任何 VCS 控制的情況下,也可以與您的項目目錄一起工作。它適用于任何結(jié)構(gòu)構(gòu)件:項目、目錄或包、文件、類、類成員、標記或文本的選定片段。

與通常的版本控制系統(tǒng)不同,“本地歷史記錄”用于您的個人使用,它不支持共享訪問。

使用本地歷史記錄,IntelliJ IDEA 會根據(jù)一組預(yù)定義事件(測試,部署,提交或更新)自動跟蹤您對源代碼所做的更改、重構(gòu)的結(jié)果以及源代碼的狀態(tài)。

本地歷史修訂標有標簽,與傳統(tǒng)版本控制系統(tǒng)中的版本類似?;陬A(yù)定義事件的標簽會自動添加到本地修訂版本中;除此之外,您可以將自己的標簽放置在項目構(gòu)件上以標記您的更改。還原或查看差異是針對這些標簽執(zhí)行的。

本地歷史有一定的局限性:

  • 僅可對文本文件進行跟蹤本地更改。二進制文件沒有本地歷史記錄。
  • 對于大于 1M 字節(jié)的文件,本地歷史只跟蹤更改的事實,但不保留相應(yīng)的內(nèi)容。
  • 本地歷史記錄不支持共享訪問。

補丁

IntelliJ IDEA 幫助您創(chuàng)建和應(yīng)用補丁到源代碼。修補程序是標準文本格式的文件,它具有 * .patch 擴展名,并包含兩組源文件之間的差異列表。

修補程序只包含對文本文件的更改。對二進制文件的更改無法修補。

這個概念與擱置變動的概念緊密相關(guān)。

擱置的變化

當(dāng)您沒有時間將源代碼帶到某個必需的條件或需要處理緊急的高優(yōu)先級任務(wù)時,您可以遇到這種情況。在這種情況下,您可能需要將一些更改擱置在一邊,并且繼續(xù)使用穩(wěn)定的版本。

使用 IntelliJ IDEA,您可以使用貨架臨時存儲推遲的更改。在適當(dāng)?shù)臅r候,所需的變化可以從架子上取回(未保存)。

IntelliJ IDEA 可以擱置單獨的文件和整個更改列表。因此,您可以取消擱置整個貨架或特定文件。

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號