IntelliJ IDEA版本控制的概念

2018-11-11 11:38 更新

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

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

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

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

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

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

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

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

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

基于目錄的版本控制模型

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

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

變更列表

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

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

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

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

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

本地、存儲(chǔ)庫(kù)和傳入更改

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

IntelliJ IDEA 區(qū)分了三類(lèi)更改: 本地、存儲(chǔ)庫(kù)和傳入。

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

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

本地歷史

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

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

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

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

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

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

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

補(bǔ)丁

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

修補(bǔ)程序只包含對(duì)文本文件的更改。對(duì)二進(jìn)制文件的更改無(wú)法修補(bǔ)。

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

擱置的變化

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

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

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

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

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)