git cherry-pick

今天給你們介紹git一個很是實用的技能cherry-pickcherry-pick字面翻譯就是撿櫻桃(吃貨們請自重),但在git裏,它的功能是把已經存在的commit進行挑選,而後從新提交。下面你們能夠腦補一下這種狀況,本地倉庫有3個分支mastertestnormal,他們的提交記錄以下:git

master的基礎上,test進行了2次提交,normal進行了1次提交。如今想把test的第2次提交(僅僅是第2次提交,不包含第1次提交)和normal的第1次提交合併到master分支,直接merge分支是行不通的,這樣會把兩個分支的所有提交都合併到master,用cherry-pick便可完美的解決問題, 若是normal第一次提交的SHA-1值是9b47ddtest第二次提交的值是dd4e49,執行以下命令便可把這兩個提交合併到master工具

git cherry-pick 9b47dd dd4e49

 

若是有衝突,則須要修改衝突文件,而後添加修改文件到暫存區,命令以下:spa

git add main.js

 

最後執行翻譯

git cherry-pick --continue

 

最後要說明的是:code

  • 執行完git cherry-pick --continue後不須要commit了,該命令會自動提交
  • git cherry-pick --abort能夠放棄本次cherry-pick
  • git cherry-pick 9b47dd dd4e49git cherry-pick dd4e49 9b47dd這兩個的結果可能會不同,順序很重要

最好借用工具解決衝突,GitTortoiseorm

相關文章
相關標籤/搜索