Git命令
git cherry-pick <commit id>
複製程式碼
使用背景
- 使用者中心需要優化,在分支daily/1.3.0上開發。
- 在優化的過程中提取了公共部分獨立成檔案或模組,提交到了daily/1.3.0上。此時分支上即有公共部分,又有此次優化的功能點。
- 突發奇想,想要對別的地方進行優化、抽象別的方法,但是又不想影響此次的功能,即不想也不能提交在daily/1.3.0上。
- 如果基於daily/1.3.0新建分支的話,除公共優化部分還會帶來多餘的功能點;但是基於乾淨分支新建一個分支,優化的歷史記錄難道要一個一個拷貝貼上????
- 還好,在優化的時候,抽象方法相對功能點獨立,commit比較乾淨
目的
新建一個乾淨的優化分支,把daily/1.3.0關於公共優化部分的commit搞過來
工具
WebStorm
步驟
- 基於master或別的乾淨、可上線的分支新建並切換至分支refine/routes-common
- 開啟WebStorm下的Version Control,選擇Log選項卡,Branch選擇daily/1.3.0
3.選擇需要合併的commit, 右鍵->cherry-pick (之所以不使用命令列是多選commit的時候比較麻煩)
- 像普通提交一樣commit,如果有衝突,像普通解決衝突一樣解決
其實
如果只涉及檔案變動,也可以使用git checkout來合併資料夾