git 一个可以提高开发效率的命令:cherry-pick详解_相关技巧

来源:脚本之家  责任编辑:小易  

直接把某一次commit拿过来,作为最新一次commit就像是直接摘了一颗樱桃加在链表最前面,所以叫cherry-pickwww.zgxue.com防采集请勿采集本网。

各位码农朋友们一定有碰到过这样的情况:在develop分支上辛辛苦苦撸了一通代码后开发出功能模块A,B,C,这时老板过来说,年青人,我们现在先上线功能模块A,B。你一定心里一万只草泥马奔腾而过,但为了混口饭吃必须得按老板的意思办事啊。

可以使用命令(注意是用三点表示的git提交范围):git log --cherry-pick --left-only --no-merges b1master 其中: --cherry-pick: 指示忽略cherry-pick的提交,它会先比较commit-id,然后再比较patch-id来确定是否为cherry-pick提交。 --left

怎么办?一个办法就是,重新建一个分支,然后再把功能模块C回退,留下功能模块A,B。这种做法不是不行,但是有更好的办法,那就是git所提供的cherry-pick功能。

commit2: add test2.ccommit1: add test1.c模拟丢失commit记录的情况,执行git reset --hard HEAD~1,删除了commit3,同时test3.c文件已经在working tree里看不到了,如果要恢复commit3,就要使用git reflog和git cherry-pick.$ git reflog502dd0f H

cherry-pick类似于一个定制化的merge,它可以把其它分支上的commit一个个摘下来,合并到当前分支。

一般是您删除东西不是在控制面板中卸载的,这样在开机启动中还有信息,您可以到开机启中看看有没有这个东西,有就去掉(另外就是某程序出了问题)。 请问原来不这样吧?如果是,出事前您在电脑上干了什么,下载什么了,什么东西有异常,如果想起

废话不多说,直接上实例。

可以,只要你知道那个commit的Hash码就行

比如我现在有个文件a.c,我在develop分支完成了三个功能模块:feature A,feature B,feature C。如下图:

git本地分枝没有commit前能不能cherry pick 搜索资料 我来答 分享 微信扫一扫 网络繁忙请稍后重试 新浪微博 QQ空间 举报 浏览6 次 本地图片 图片链接

现在,坑爹的老板只要feature A,feature B,我们现在用cherry-pick命令直接把feature A,feature B的提交合并到master分支里,如下操作:

可以看到,功能模块feature A,feature B已经被合并到master分支里。请注意,合并到master分支里的提交哈希值发生了改变,与原来的不同。

可以看出,cherry-pick命令使用方法很简单,即:

git cherry-pick commitID

刚刚是一个个提交cherry-pick到master分支,但如果有100个commit要合并到master分支呢?总不能这样一个个操作吧?git一样帮你想到了,它提供了一个区间操作方法。具体来讲是这样的:

git cherry-pick commit1..commit100

但是要注意,这是一个左开右闭的操作,也就是说,commit1不会被合并到master分支,而commit100则会。这样的话上面的需求可以如下操作来实现:

注意:上面讲到cherry-pick命令每拣选一个commit就会提交一次生成一个新的commit id。 如果我们想让每个commit 拣选后暂缓提交,等到所有commit都拣选完成后,自己手动commit,应该怎么办呢?答案是用-n 选项:

怎样,是不是很简单?学会了cherry-pick命令妈妈再也不用担心老板时不时的头脑发热了。快扫描下方二维码和良许一起学习更多git神操作!

到此这篇关于git 一个可以提高开发效率的命令:cherry-pick详解的文章就介绍到这了,更多相关git cherry-pick命令内容请搜索真格学网以前的文章或继续浏览下面的相关文章希望大家以后多多支持真格学网! 您可能感兴趣的文章:C#/.NET使用git命令行来操作git仓库的方法示例Git命令的简单整理大全Git代码提交流程及git命令汇总(基础篇)Linux中Git集中操作命令汇总

  <p>不太确定你2113理想的状态是什么5261,是想既保留你之前的提交又不包含别人4102影1653响的那部分吗?实际上你的代码已经push到库里了,不太好退回到这种状态又不影响别人。</p> <p>有个思路,不确定效果如何,你参考一下:</p> <p>记住你最后一次的提交号,假设为xxx1</p><p>查到你git pull这前的那个提交号,假设为xxx2</p><p>git reset --hard xxx2</p><p>git cherry-pick xxx1 (有冲突要解冲突)</p><p>git merge <远程分支> (有冲突要解冲突)</p><p>git push  </p>内容来自www.zgxue.com请勿采集。


  • 本文相关:
  • 让开发自动化 用 eclipse 插件提高代码质量
  • 基于git的常用撤销技巧与解决冲突方法(推荐)
  • git常用场景使用之分支操作
  • 微信小程序搭建及解决登录失败问题
  • github 常用命令总结大全
  • git恢复删除的分支及内容的方法
  • 文章中优酷视频全屏及去除广告在线转换
  • 微信小程序学习之初探小程序
  • 极验验证码 安装部署详细介绍
  • 算法系列15天速成 第七天 线性表【上】
  • git cherry-pick 是增量的么
  • git中cherry-pick什么意思
  • 相同的目录有多个 git cherry-pick
  • git checkout 和 cherry pick的区别
  • 显示git提交日志时如何忽略cherry
  • 如何用git reflog和git cherry-pick找回已删除的co...
  • 窗口提示损坏的映像git-cherry-pick.exe没有没指定...
  • git 能不切分支的情况下cherry-pick吗
  • git本地分枝没有commit前能不能cherry pick
  • git cherry pick 如何判断该提交已pick过
  • 网站首页网页制作脚本下载服务器操作系统网站运营平面设计媒体动画电脑基础硬件教程网络安全javascriptasp.netphp编程ajax相关正则表达式asp编程jsp编程编程10000问css/htmlflex脚本加解密web2.0xml/rss网页编辑器相关技巧安全相关网页播放器其它综合dart首页c#/.net使用git命令行来操作git仓库的方法示例git命令的简单整理大全git代码提交流程及git命令汇总(基础篇)linux中git集中操作命令汇总让开发自动化 用 eclipse 插件提高代码质量基于git的常用撤销技巧与解决冲突方法(推荐)git常用场景使用之分支操作微信小程序搭建及解决登录失败问题github 常用命令总结大全git恢复删除的分支及内容的方法文章中优酷视频全屏及去除广告在线转换微信小程序学习之初探小程序极验验证码 安装部署详细介绍算法系列15天速成 第七天 线性表【上】2019最新的pycharm激活码(推荐)进制转换算法原理(二进制 八进制eclipse 格式化代码时不换行与自微信小程序设置http请求的步骤详几款开源的中文分词系统从console.log说起(console.log详十进制负数转换为二进制、八进制url 长度有限制吗?抓包工具fiddler的使用方法详解(webstorm 遇到的问题总结手把手教你使用git(图文教程)关于换行和回车的图文小结git 教程之服务器搭建详解使用vscode如何从github拉取项目的实现utf-8 编码中bom的检测与删除wordpress 忘记密码的处理方法vscode单击新文件时覆盖旧文件的解决方法git rebase 成功之后撤销的操作方法2013年cio需要知道的八句格言
    免责声明 - 关于我们 - 联系我们 - 广告联系 - 友情链接 - 帮助中心 - 频道导航
    Copyright © 2017 www.zgxue.com All Rights Reserved