IDEA Git Cherry-pick(摘樱桃) 实现分支的部分提交合并到Master

   git cherry-pick可以选择某一个分支中的一个或几个commit(s)来进行操作。

             最近同时开发了很多个功能并提交到了dev分支,但是上线的时候有些功能依赖其他的团队的服务,其他团队上不了线,导致自己的提交到dev分支的某些功能没法上线。现在分支上有四五个功能,但是现在只要合并dev中的中的一两个功能到master。如果直接使用Merge-Changes 会将所有的提交合并到主干。

             为了在dev的n多次提交里面把需要上线的代码合并到master(下次上线的不合并),我头大了很多天。问了好几个同事,他们平时合并都是用的Beyond Compare 对比dev 和master 然后把需要提交的dev中的代码一个一个的弄到master里面,这样的操作不仅麻烦,而且容易漏文件。

        我认为idea 和git 既然这么成熟,肯定有类似这种问题的解决方式。

         后来同事告知了一个方法。Merge-Changes   nocommit 。这样可以把分支的所有提交下载到本地,然后自己选择自己需要提交的文件commit。(如果不选nocommit会自动将所有的dev文件下载到本地仓库这样就不能有选择的提交了)具体操作方法如:

    1.切换到master分支,然后右击项目 git-Repository - Merge-Changes  然后 勾选nocommit如下图。IDEA Git Cherry-pick(摘樱桃) 实现分支的部分提交合并到Master_第1张图片

IDEA Git Cherry-pick(摘樱桃) 实现分支的部分提交合并到Master_第2张图片

 

上面的方法并不像是一个很正规的合并部分文件的操作。

下面介绍git合并部分分支提交到master的功能(Cherry-pick 摘樱桃),此功能会根据提交来合并功能。具体操作

1. 选择项目右击。git- show history

IDEA Git Cherry-pick(摘樱桃) 实现分支的部分提交合并到Master_第3张图片

 

2.任意选一个提交,右击选select in git log

 

 

IDEA Git Cherry-pick(摘樱桃) 实现分支的部分提交合并到Master_第4张图片

3.选择要合并的提交,右击选cherry-pick

IDEA Git Cherry-pick(摘樱桃) 实现分支的部分提交合并到Master_第5张图片

4.提交文件。

IDEA Git Cherry-pick(摘樱桃) 实现分支的部分提交合并到Master_第6张图片

 

 

你可能感兴趣的:(idea)