管理Git分支

2018-12-13 11:19 更新

在Git中,分支(branch)是一個(gè)強(qiáng)大的機(jī)制,可以讓你脫離主要的開發(fā)線,例如,當(dāng)您需要處理一個(gè)特性, 或者凍結(jié)某個(gè)版本的代碼庫(kù)的某種狀態(tài)時(shí)。

在IntelliJ IDEA中,所有使用分支的操作??都在“Git分支”的彈出窗口中執(zhí)行。要調(diào)用它,請(qǐng)執(zhí)行以下操作之一:

  • 點(diǎn)擊狀態(tài)欄中的Git小部件:
    管理Git分支
  • 通過(guò)在主菜單選擇VCS操作彈出,或按 Alt+Back Quote,然后選擇分支那里,以調(diào)用VCS操作彈出。
  • 從主菜單中選擇VCS | Git | 分支。
  • 右鍵單擊編輯器中的任何文件,然后在上下文菜單中選擇:Git | 存儲(chǔ)庫(kù)| 分支。

如果您有許多分支,您可以選擇是要在“分支”彈出窗口中顯示所有分支,還是僅顯示收藏的分支。要做到這一點(diǎn),請(qǐng)切換分支彈出窗口底部的“僅顯示收藏夾(Show Only Favorites )”和“顯示更多(Show x More)”命令。

要將分支標(biāo)記為收藏,請(qǐng)將鼠標(biāo)光標(biāo)懸停在分支名稱上,然后單擊左側(cè)顯示的星形輪廓: 。該master分支被標(biāo)記為默認(rèn)的首選項(xiàng)。

當(dāng)前簽出的分支的名稱顯示在狀態(tài)欄中的Git小部件中。

如果您有一個(gè)多根倉(cāng)庫(kù),則可以啟用同步分支控制,這意味著所有分支操作(如checkout,merge,delete等)將同時(shí)執(zhí)行,就像它是單個(gè)倉(cāng)庫(kù)一樣。如果某個(gè)操作至少在一個(gè)倉(cāng)庫(kù)中失敗,則IntelliJ IDEA可以通過(guò)建議您在成功的倉(cāng)庫(kù)中回滾此操作來(lái)防止分支發(fā)散。您可以在“版本控制| Git”下的“設(shè)置/首選項(xiàng)”對(duì)話框(Ctrl+Alt+S)中啟用同步分支控制 。

創(chuàng)建一個(gè)新的分支

如果您想要?jiǎng)?chuàng)建新的分支,例如要處理新的功能,請(qǐng)執(zhí)行以下操作:

  1. 在“分支(Branches)”彈出窗口中,選擇新分支(New Branch)。
  2. 在打開的對(duì)話框中,指定分支名稱,如果要切換到該分支,則確保選中“檢出分支(Checkout branch)”選項(xiàng)。

新的分支將從當(dāng)前的HEAD開始。如果要從前一個(gè)提交而不是當(dāng)前分支HEAD啟動(dòng)分支,請(qǐng)?jiān)贚og中選擇此提交,然后從上下文菜單中選擇New Branch。

簽出一個(gè)分支作為一個(gè)新的本地分支

如果您想在其他人創(chuàng)建的分支中工作,則需要檢查以創(chuàng)建該分支的本地副本:

  1. 在“分支(Branches)”彈出窗口中,選擇您想從遠(yuǎn)程分支簽出本地的分支,或者常見的遠(yuǎn)程分支(Common Remote Branches)如果您的項(xiàng)目具有多個(gè)根目錄并啟用了同步分支控制,或者如果它被禁用了,則從“存儲(chǔ)庫(kù)|遠(yuǎn)程分支(Repositories | Remote Branches)”選擇,并從可用操作列表中選擇:“檢出”作為新的本地分支。
  2. 如有必要,請(qǐng)為此分支輸入一個(gè)新名稱,或保留對(duì)應(yīng)于遠(yuǎn)程分支的默認(rèn)名稱,然后單擊“確定”。

在分支之間切換

IntelliJ IDEA 保存您的上下文(即一組與分支關(guān)聯(lián)的打開的文件,以及當(dāng)前的運(yùn)行配置和斷點(diǎn)),前提是在版本控制|確認(rèn)(Version Control | Confirmation)之下的 "設(shè)置/首選項(xiàng)" 對(duì)話框中啟用了"分支切換的還原工作區(qū)" 選項(xiàng) (Ctrl + Alt +S) 。當(dāng)您切換到不同的分支時(shí),IntelliJ IDEA會(huì)自動(dòng)恢復(fù)與該分支關(guān)聯(lián)的上下文。

當(dāng)多任務(wù)時(shí),通常需要在分支之間跳轉(zhuǎn)到提交不相關(guān)的更改。要切換到不同的分支,請(qǐng)?jiān)凇胺种А睆棾龃翱谥?,選擇要切換到 "本地分支" 下的分支,然后從可用操作列表中選擇“簽出”。接下來(lái)會(huì)發(fā)生什么取決于您尚未提交的本地更改與要檢出的分支之間是否存在沖突:

  • 如果您的工作樹是干凈的(即沒(méi)有未提交的更改),或者您的本地改變不會(huì)與指定的分支發(fā)生沖突,這個(gè)分支將被檢出(IntelliJ IDEA 窗口的右下角會(huì)彈出一個(gè)通知)。
  • 如果您的本地更改將被checkout覆蓋,IntelliJ IDEA將顯示阻止您檢出所選分支的文件列表,并建議在Force Checkout和Smart Checkout之間進(jìn)行選擇。如果您單擊強(qiáng)制簽出,您的本地未提交更改將被覆蓋,您將失去它們。如果您單擊智能簽出,IntelliJ IDEA將隱藏未提交的更改,檢出所選分支,然后取消更改。如果在非固定操作過(guò)程中發(fā)生沖突,系統(tǒng)將提示您合并更改。有關(guān)詳細(xì)信息,請(qǐng)參閱解決沖突。

比較分支

如果您想檢查兩個(gè)分支之間的分歧,你可以比較它們。為此,請(qǐng)從分支彈出窗口中選擇要與當(dāng)前分支進(jìn)行比較的分支,然后從可用操作列表中選擇比較。

在打開的對(duì)話框中,“Log”選項(xiàng)卡顯示一個(gè)分支中存在的所有提交列表,而不存在于另一個(gè)分支中。當(dāng)您選擇提交時(shí),右側(cè)窗格顯示受此提交影響的文件列表。您可以單擊工具欄上的“顯示差異”圖標(biāo) ,查看在此提交中所選文件的更改情況。

單擊交換分支鏈接到toggle,切換哪個(gè)分支被視為您正在比較其他分支的基礎(chǔ)。基本分支顯示在左側(cè)。

“文件”選項(xiàng)卡顯示兩個(gè)分支之間有差異的所有文件的列表。單擊 顯示當(dāng)前分支中選定文件與您正在進(jìn)行比較的分支之間的差異。

刪除分支

在將功能分支的更改集成到開發(fā)主線之后,您可以刪除不再需要的分支:

  1. 調(diào)用分支彈出并選擇您想要?jiǎng)h除的分支。
  2. 從子菜單中選擇 "刪除"。

刪除分支后,會(huì)在右下角顯示通知,您可以從中恢復(fù)已刪除的分支:

管理Git分支 

如果分支包含尚未合并到其上游分支或當(dāng)前分支的提交,則它仍將立即刪除(相當(dāng)于git branch --D 或git branch --delete --force命令),但通知還將包含一個(gè)鏈接,允許您查看未提交的提交。

如果已經(jīng)刪除的分支正在跟蹤遠(yuǎn)程分支,您也可以從此通知中刪除遠(yuǎn)程分支。


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

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)