一个能够提升开发效率的Git命令-- Cherry-Pick

在实际的项目开发中(使用Git版本控制),在所不免会遇到没有切换分支开发、须要在另外一个分支修改bug而后合并到当前分支的状况。以前遇到这种第一反应就是将分支合并过去来解决问题。若是你那些提交当中也穿插了其余人的提交并且他们的提交不能够合并到另外一个分支,那么使用分支的合并将明显变得困难。下面分享给你们一个很是好用Git的命令Cherry-Pick来处理这些状况,从而提升开发的效率。git

What is Cherry-Pick ?

git Cherry-Pick命令能够选择某一个分支中的一个或几个commit(s)来进行操做。你能够理解merge的个性定制版本,哈哈~~github

How use Cherry-Pick

假设咱们有两个分支,一个是master分支,一个是从master分支Git Commit Log为“修改侧栏内容”新建出来的dev分支。express

master分支

dev分支

如今须要将master分支下的git Log commit "修改侧栏的点击跳转方式"合并到dev分支。也许你可能想到将这个Log上面的Logs先Revert,而后再将master分支合并到dev分支。下面记录一下怎么使用Cherry-Pick来合并一个或者多个提交。apache

  • 先将当前分支切换到dev分支。app

    ![切换到dev分支](http://7xrnko.com1.z0.glb.clouddn.com/git-cherry-pick/4.png)
  • 打开master的全部提交Log,找到须要合并到dev分支的提交,这里咱们找到“修改侧栏的点击跳转方式”这个提交,而后点击右击选择菜单弹出Cherry-Pick命令。框架

    ![](http://7xrnko.com1.z0.glb.clouddn.com/git-cherry-pick/8.png)
  • 接着,IDE会弹出熟悉的提交提示框架,这时咱们点击Commit或者Commit and Push...就能够将须要合并的提交合并到dev分支了。
    这里我选择了Commit and Push...less

![](http://7xrnko.com1.z0.glb.clouddn.com/git-cherry-pick/6.png)

查看dev分支的Log能够看到那个提交已合并到dev。ui

Note

当你须要将某些提交合并到另外一分支的时候,必定必定必定要按提交的顺序进行合并,否则会致使某些文件发生冲突。这也是我实际项目中踩过的坑。this

End

  1. 当你的需求尚未完成的时候,其余人应该切换到另外一分支开发的时候,你能够先在当前分支继续开发完,而后再选择Cherry-Pick命令合并过去就能够了。spa

  2. 当你须要将某我的的commits合并到另外一开分时候,能够选择Cherry-Pick命令。(在实际的项目开发中,在所不免有人会提交错分支)

  3. 当你切换到某条分支修改Bug后,须要将修改提交合并另外一分支,能够选择Cherry-Pick命令。


这是一个很是好用、有趣的命令,它提升了个人开发效率~~在此,分享给大伙,但愿能够帮忙到更多的人!
点击关注我

License

Copyright 2017 zhonghanwen

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

   http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.