合併單個commit到指定分支上——tortoisegit cherry pick 的使用
吳尼瑪發表於2019-01-01
- 當我們使用git管理一個程式的原始碼時,總是會新建很多分支。不同的分支可以直接使用merge來合併程式碼。但我們有時候會有這種需求,比如說我們有n個分支分別開發不同版本的程式,其基礎功能是一樣的,但是不同分支上有不同的需求開發,這時我們的基礎功能上有一個bug的修復想同步到其他分支上就不能使用merge了,因為merge會合並所有改動程式碼。這種情況下,我們需要使用的是git的cherry pick功能。在命令列中使用這個功能比較簡單,網上有很多,但是我們使用tortoisegit工具使用這個功能沒看到介紹這種操作的,這裡我分享出來也做個記錄。
- 比如,我們現在在dev上修復了一個基礎功能的bug,並且已經push到遠端了。這時,我們想把這次commit合併到hummer_lite_dev這個分支上。
- 首先,我們需要切換到想要合併的分支上去,然後執行git fetch同步一下遠端的提交記錄。
- 然後,選擇右鍵選單中的show log,檢視提交日誌,點選這裡切換到我們要合併的commit的那個分支的日誌。
- 這時,可以在遠端dev分支的提交記錄上看到需要合併的那次commit。
- 在這次commit上右鍵彈出選單,選擇Cherry Pick this commit...
- 這時就會彈出cherry pick的介面,選中需要pick的那次commit,點選contimue,就會把這次commit合併並且提交到到本地的hummer_lite_dev分支上了。這裡也可以檢視commit的檔案和msg,如果有衝突也要解決衝突。
- 這裡我們可以看到本地的分支已經指向了合併進來的最新一次的commit。
- 最後,我們執行一下git pull、git push,將其同步到遠端分支上就ok啦。