利用cherry pick巧妙地將某次提交單獨合并到其他分支

0. 引言

最近在進行系統的多版本并行開發,涉及一些共有基礎功能提交時就遇到了麻煩,一份代碼需要向多個版本分支進行同步,以保證多版本都能有更新該基礎功能。

多次對比提交的方式顯然會帶來巨大的工作量。但實際上我們可以通過git的cherry-pick指令來簡化操作
在這里插入圖片描述

1. cherry-pick簡介

cherry-pick 其作用就是將其他分支的單個提交合并到當前分支,其名字也很貼合——“摘櫻桃”,從分支樹上摘下來指定的幾顆。

其應用場景包括:
合并單個提交:當我們只想將某個分支上的某一次提交合并到當前分支時,可以使用cherry-pick命令,而不需要合并整個分支

修復bug:當我們在一個分支上修復了一個bug,并希望將這個修復同步應用到其他分支時

共性功能:當我們在一個分支上開發了一個新功能,這個功能可能屬于基礎性通用功能,也希望應用到其他版本時

2. idea界面操作

1、首先為了模擬操作,我這里創建了兩個分支:feature-v1.0, feature-v2.0。我們需要模擬的場景是:

  1. 在v1.0版本中開發并提交了一次通用功能
  2. 需要將v1.0提交的這次通用功能合并到v2.0版本中

我們首先在v1.0中模擬一次代碼提交
在這里插入圖片描述

2、然后右下角將分支切換到v2.0
在這里插入圖片描述
3、點擊左下角的Git選項,打開git提交歷史,并在菜單左側選中來源分支,即v1.0
在這里插入圖片描述
4、找到我們要合并的提交,并選中,然后點擊窗口中的櫻桃圖標,或者右鍵菜單中點擊Cherry-Pick,如果需要合并多次提交的話,就都選中然后點擊cherry-pick即可

在這里插入圖片描述
5、成功合并后會看到提示信息
在這里插入圖片描述
6、需要注意的是,如果前面選擇的分支是本地分支,那么還要將合并的代碼提交到遠端分支
在這里插入圖片描述
7、合并后,我們就可以在本地以及遠端分支都看到這次提交的代碼了
在這里插入圖片描述
在這里插入圖片描述

3. git指令操作

1、首先進入到項目目錄下,切換分支到來源分支v1.0

git checkout feature-v1.0

然后執行git log指令,查看歷史提交記錄
在這里插入圖片描述
2、每次提交都有一個唯一的hash標識,找到你想要合并的那次提交,復制其hash

hash如:4bfc117cd967eaa56e0835847e901becf3787b25
在這里插入圖片描述

3、切換到目標分支

git checkout feature-v2.0

4、執行cherry-pick指令,其指令語法如下,其中commit表示某次提交的hash值或者分支名,如果是分支名會將這個分支的提交都合并過去

git cherry-pick <commit>

如果需要合并多次,就將hash值用空格隔開即可

git cherry-pick hash1 hash2 hash3

我們將之前復制的hash值貼過來執行

git cherry-pick 4bfc117cd967eaa56e0835847e901becf3787b25

如此代碼就合并過來了
在這里插入圖片描述
5、當然這里還只是提交到本地分支,如果要提交到遠端的話,執行git push推送即可

在這里插入圖片描述

總結

如上,我們就完成了針對某次提交的單獨合并操作,實際操作時更加建議使用idea的可視化操作,畢竟可能會涉及到代碼沖突,這時就需要我們手動解決沖突了

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/18082.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/18082.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/18082.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

「Python Socket超能力:網絡世界的隱形斗篷!」

Hi&#xff0c;我是阿佑&#xff0c;今天將帶領大家揭開Python Socket編程的神秘面紗&#xff0c;賦予我們的網絡應用隱形斗篷般的超能力&#xff01; 深入探討Socket編程的革命性力量&#xff0c;教你如何用Python的Socket模塊來構建強大的網絡應用。從簡單的HTTP服務器到復雜…

MagicLens:新一代圖像搜索技術和產品形態

MagicLens&#xff1a;Self-Supervised Image Retrieval with Open-Ended Instructions MagicLens: 自監督圖像檢索與開放式指令 作者&#xff1a;Kai Zhang&#xff0c; Yi Luan&#xff0c; Hexiang Hu&#xff0c; Kenton Lee&#xff0c; Siyuan Qiao&#xff0c; Wenhu …

Selenium操作瀏覽器Cookie(增/刪/查看cookie)

天行健&#xff0c;君子以自強不息&#xff1b;地勢坤&#xff0c;君子以厚德載物。 每個人都有惰性&#xff0c;但不斷學習是好好生活的根本&#xff0c;共勉&#xff01; 文章均為學習整理筆記&#xff0c;分享記錄為主&#xff0c;如有錯誤請指正&#xff0c;共同學習進步。…

更新.gitmodules的子模塊倉庫地址,但是沒有生效,需要運行命令

當你更新了 .gitmodules 文件中的子模塊倉庫地址后&#xff0c;為了使這些更改生效并同步到實際的子模塊目錄&#xff0c;你需要執行以下步驟&#xff1a; 同步.gitmodules的更改&#xff1a; 使用 git submodule sync 命令來同步.gitmodules文件中的URL修改到你的本地配置。執…

在VS Code中進行Java的單元測試

在VS Code中可以使用 Test Runner for Java擴展進行Java的測試執行和調試。 Test Runner for Java的功能 Test Runner for Java 結合 Language Support for Java by Red Hat 和 Debugger for Java這兩個插件提供如下功能&#xff1a; 運行測試&#xff1a; Test Runner for …

Flutter 中的 Flex 小部件:全面指南

Flutter 中的 Flex 小部件&#xff1a;全面指南 Flutter 的布局系統非常靈活&#xff0c;允許開發者以聲明式的方式構建復雜的用戶界面。Flex 是 Flutter 中用于創建靈活布局的核心小部件之一&#xff0c;它提供了水平和垂直的線性布局能力。本文將詳細介紹 Flex 小部件的使用…

QT學習(20):QStyle和自定義樣式

QStyle 樣式&#xff08;繼承自QStyle類&#xff09;代表控件的繪制并封裝GUI的外觀。QStyle是一個封裝了GUI外觀的抽象基類。Qt使用QStyle去執行幾乎所有的內置控件的繪制&#xff0c;確保控件外觀和原生控件風格風格相同。 class Q_WIDGETS_EXPORT QStyle : public QObject{…

【OpenCV】圖像通道合并與分離,ROI

介紹可以實現圖像通道合并與分離的API&#xff0c;這只是一種方式&#xff0c;后續還會介紹其他的合并與分離方法&#xff0c;以及ROI區域截取的方法。相關API&#xff1a; split() merge() Mat對象() 代碼&#xff1a; #include "iostream" #include "ope…

Hive的小文件處理

針對ORC存儲格式的小文件 --orc合并小文件的特定語法,使用concatenate(連接、使連續)關鍵字 --非分區表 alter table table_name concatenate;--分區表 alter table table_name partition(dtxxx) concatenate;針對TEXTFILE存儲格式的小文件 --將這些小文件進行合并,這里使用d…

MySQL進階之(九)數據庫的設計規范

九、數據庫的設計規范 9.1 范式的概念9.1.1 范式概述9.1.2 鍵和相關屬性 9.2 常見的范式9.2.1 第一范式9.2.2 第二范式9.2.3 第三范式9.2.4 第四范式9.2.5 第五范式&#xff08;域鍵范式&#xff09; 9.3 反范式化9.3.1 概述9.3.2 舉例9.3.3 反范式化新問題9.3.4 通用場景 9.4 …

18 - grace數據處理 - 補充 - 地下水儲量計算過程分解 - 地表水儲量變化Glads水文數據處理

18 - grace數據處理 - 補充 - 地下水儲量計算過程分解 - 地表水儲量變化 0 引言1 Grace陸地水儲量過程整合0 引言 由水量平衡方程可以將地下水儲量的計算過程分解為3個部分,第一部分計算陸地水儲量變化、第二部分計算地表水儲量變化、第三部分計算地下水儲量變化。本篇簡單介紹…

2024.05.28學習記錄

1. 小林coding 計網復習 2.代碼隨想錄刷題. 圖論.和復習數組.鏈表 3.rosebush完成select組件

在Go語言中如何實現變參函數和函數選項模式

在Go語言編程中,我們經常會遇到需要給函數傳遞可選參數的情況。傳統的做法是定義一個結構體,將所有可選參數作為結構體字段,然后在調用函數時創建該結構體的實例并傳遞。這種方式雖然可行,但是當可選參數較多時,創建結構體實例的代碼就會變得冗長???不太直觀。 Go語言的一個…

計算機筆記13(續20個)

210.辦公自動化服務是一種應用軟件實現的功能&#xff0c;不是網絡操作系統提供的服務 211.中文windows中包含的漢字庫文件庫文件是用來解決輸出時轉換為顯示或打印字模 212.漢字系統中的漢字字庫里存放的是漢字的字形碼 213.目前最為嚴重的病毒是木馬病毒 214.網絡安全服務…

景源暢信電商:做抖音運營怎么開始第一步?

在數字化時代的浪潮中&#xff0c;抖音作為一款短視頻平臺迅速崛起&#xff0c;成為許多人表達自我、分享生活的重要舞臺。隨著用戶量的激增&#xff0c;如何做好抖音運營&#xff0c;尤其是邁出成功的第一步&#xff0c;成為了眾多內容創作者和品牌主們關注的焦點。接下來&…

Web應用開發學習筆記————Vue框架

Vue框架快速入門 Vue入門 實現代碼&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><title>vue入門</title><!--引入vue.js文件--><script src"../js/vue.js"><…

就說說Java初學者求職準備項目的正確方式

當下不少Java初學者也知道求職時項目的重要程度&#xff0c;但在簡歷上寫項目和準備面試項目時&#xff0c;真有可能走彎路&#xff0c;這樣的話&#xff0c;加重學習負擔還是小事&#xff0c;還真有可能導致無法入職。 1 對于在校生和應屆生來說&#xff0c;你去跑通個學習項…

2024年4月—馬克思主義基本原理概論真題及答案解析(上海自考)

目錄 1.選擇題 2.簡答題 3.論述題 1.選擇題 2.簡答題

專業滲透測試 Phpsploit-Framework(PSF)框架軟件小白入門教程(九)

本系列課程&#xff0c;將重點講解Phpsploit-Framework框架軟件的基礎使用&#xff01; 本文章僅提供學習&#xff0c;切勿將其用于不法手段&#xff01; 繼續接上一篇文章內容&#xff0c;講述如何進行Phpsploit-Framework軟件的基礎使用和二次開發。 現在&#xff0c;我們…

STM32——定時器

一、簡介 *定時器可以對輸入的時鐘進行計數&#xff0c;并在計數值達到設定值時觸發中斷 *16位計數器、預分頻器、自動重裝寄存器的時基單元&#xff0c;在72MHz計數時鐘下可以實現最大59.65s的定時 *不僅具備基本的定時中斷功能&#xff0c;而且還包含內外時鐘源選擇、輸入…