Git將分支更改應(yīng)用到另一個(gè)分支

2018-12-14 10:59 更新

在Git中,有幾種方法可以將更改從一個(gè)分支集成到另一個(gè)分支中:合并分支、重定向分支或?qū)⒉煌奶峤粡囊粋€(gè)分支應(yīng)用到另一種(cherry-pick)。

合并Git分支

假設(shè)您已經(jīng)創(chuàng)建了一個(gè)功能分支來(lái)處理特定的任務(wù),并且想要在完成并測(cè)試您的功能之后將工作結(jié)果集成到主代碼庫(kù)中:

Git

將您的分支合并到主分支中是最常見(jiàn)的方法。

當(dāng)您在您的特色部門工作的時(shí)候,您的隊(duì)友們繼續(xù)承擔(dān)他們的工作,這是非常普遍的:

Git

當(dāng)您運(yùn)行 merge 時(shí),來(lái)自功能分支的更改將集成到目標(biāo)分支的HEAD中:

Git

Git 創(chuàng)建一個(gè)新的提交(M),這個(gè)提交被稱為合并提交,其結(jié)果是將來(lái)自功能分支與來(lái)自兩個(gè)分支分叉的點(diǎn)的master的更改組合在一起。

要合并分支,請(qǐng)執(zhí)行以下操作:

  1. 切換到您想要將更改集成到的目標(biāo)分支。
  2. 調(diào)用分支彈出式菜單,并選擇您要合并到目標(biāo)分支中的分支。
  3. 從子菜單中選擇 "合并"。

如果您的工作樹(shù)是干凈的(即你沒(méi)有任何未提交的改變),并且您的功能分支和目標(biāo)分支之間不會(huì)發(fā)生沖突,Git會(huì)合并這兩個(gè)分支,并且合并提交將出現(xiàn)在Log中:

Git

如果分支與目標(biāo)分支之間發(fā)生沖突,系統(tǒng)將提示您解決沖突(請(qǐng)參閱“解決沖突”以了解詳細(xì)信息)。

如果您有本地更改將被合并覆蓋,IntelliJ IDEA將建議執(zhí)行智能合并。如果您選擇此選項(xiàng),IntelliJ IDEA將存儲(chǔ)未提交的更改,執(zhí)行合并,然后取消更改。

重建分支

當(dāng)您rebase分支到另外一個(gè)分支時(shí),您將第一個(gè)分支的提交應(yīng)用到第二個(gè)分支的HEAD提交之上,而不是合并到目標(biāo)分支。

假設(shè)您已經(jīng)創(chuàng)建了一個(gè)功能分支來(lái)處理特定的任務(wù),并對(duì)該分支進(jìn)行了多次提交:

Git

當(dāng)你在你的分支發(fā)展,你的隊(duì)友繼續(xù)承諾:

Git

執(zhí)行rebase操作時(shí)master,通過(guò)在當(dāng)前的HEAD提交之上應(yīng)用提交,將您在功能分支中完成的更改集成到分支中master:

Git

您可以通過(guò)從主菜單選擇:VCS | Git | 繼續(xù)重新綁定,來(lái)恢復(fù)中斷重新分配操作,并通過(guò)選擇:VCS | Git | 中止重新激活,來(lái)取消未完成的重新綁定操作。

重新綁定另一個(gè)分支上的當(dāng)前分支

要重新綁定當(dāng)前在另一個(gè)分支上檢出的分支,請(qǐng)執(zhí)行以下操作:

  1. 調(diào)用分支彈出式菜單并選擇您想要分支到當(dāng)前分支的分支。
  2. 從可用操作列表中選擇“重定向到”。

重新綁定當(dāng)前分支的分支

要重新綁定當(dāng)前簽出的分支的頂部的分支,請(qǐng)執(zhí)行以下操作:

  1. 調(diào)用分支彈出式窗口,并選擇您想要在當(dāng)前分支上重新分支的分支。
  2. 從可用操作列表中:選擇“使用重新綁定簽出”。

有關(guān)如何在重新綁定期間跳過(guò)或壓縮提交的詳細(xì)信息,請(qǐng)參閱通過(guò)執(zhí)行交互式重新分配來(lái)編輯項(xiàng)目歷史記錄。

觀看此視頻,了解合并或重建操作如何反映在“日志”視圖中:

將特定提交的更改應(yīng)用到另一個(gè)分支(cherry-pick)

有時(shí)您只需要將一個(gè)提交應(yīng)用到不同的分支,而不是重新綁定或合并整個(gè)分支。這可能是有用的,例如,如果您正在使用功能分支,并且想要集成在兩個(gè)分支已經(jīng)分支之后提交的master程序,或者您可能希望將修復(fù)移植到以前的發(fā)行版分支等。

IntelliJ IDEA允許您使用Cherry-pick動(dòng)作來(lái)做到這一點(diǎn):

  1. 切換到您想要將更改集成到的目標(biāo)分支。
  2. 打開(kāi)“版本控制工具”窗口(Alt+9)并切換到“日志”選項(xiàng)卡。
  3. 找到包含要進(jìn)行Cherry-pick的更改的提交。請(qǐng)注意,日志列出了所有提交。要減少列表中的項(xiàng)目數(shù)量,可以按分支、用戶或日期篩選提交。您也可以單擊突出顯示未選擇的提交按鈕來(lái)灰化已經(jīng)應(yīng)用到當(dāng)前分支的提交。如果您知道提交散列,或者正在查找已標(biāo)記的提交,則還可以使用“轉(zhuǎn)到哈希/分支/標(biāo)記”操作(在日志視圖中按下 Ctrl + F,或單擊工具欄上的 "查找”)。
  4. 選擇所需的提交。如有必要,請(qǐng)?jiān)?"提交詳細(xì)信息" 區(qū)域中使用。
  5. 點(diǎn)擊工具欄上的Cherry-pick按鈕。IntelliJ IDEA將顯示 "提交更改" 對(duì)話框和自動(dòng)生成的提交消息。如果您想在將代碼提交到目標(biāo)分支之前查看更改,甚至修改代碼,則可以在該對(duì)話框中的 "差異查看器" 中執(zhí)行此任務(wù)。
  6. 完成后,單擊“ 提交”以挑選選定的更改。請(qǐng)注意,如果您單擊“取消”,則將使用您在“本地更改”選項(xiàng)卡中可以看到的所選更改創(chuàng)建單獨(dú)的更改列表。您可以查看這些更改并在必要時(shí)提交。
以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

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

編程獅公眾號(hào)