Git cherry-pick

三国演义中的赤壁之战花了80%的篇幅讲战前的准备和酝酿,因为在战争打响的那一刻起,成败就已经分晓了,在战争的进程中双方都没有后退的余地,只有被时间推着像那个注定的结局前进。- -饺子

 


 

作用:将某个分支的某一次commit的修改merge到另一个分支,因为有时没有必要将合并所有分支! 仅仅pick一个樱桃!

 用法:

将y分支的某次commit(需要commit id) 合并到另一个x分支。 需要先将y分支拉到本地(Nian),然后,切换到本地的x分支并将其与远程同步,然后,git cherry-pick commitId

commitID自带分支信息吧。

 commit id可以通过git log来查看,例如下图,很长:

 

遇到过的一个使用场景:

将本地master分支与远程的master分支同步,然后以本地的master分支为蓝本,创建一个分支y,进行新功能开发,但是在y分支进行开发时,由于一些原因进行了多次commit,其中一些commit是没有用的,这时,如果将y分支推到远端,

然后,用远端的这个y分支create merge request的话,会导致你请求的requeset包含一些没有用的commit,这会导致管理员将你的请求merger到master后,在master的历史记录中有你的commit历史(包括你的哪些没有用的历史commit)。

方法:

以master为蓝本,在本地创建一个y2分支,然后,将y分支中的有用的commit,通过cherry-pick来merger到y2分支,然后将y2分支推送到远端,创建merger request。

(通过git log查看y分支的commit记录,挑出有用的commit的id,可能不连续。 然后,切到y2分支,通过多次cherry-pick把y分支的有用commit合并到y分支)

 

 

https://www.cnblogs.com/0201zcr/p/5752771.html

posted @ 2019-08-02 20:43  JadeCicada  阅读(166)  评论(0编辑  收藏  举报