cherry-pick的定义和使用方法

2023-10-30

1、定义

使用遴选(cherry-pick)命令,Git 可以让你将任何分支中的个别提交合并到你当前的 Git HEAD 分支中。当执行 git merge 或者 git rebase 时,一个分支的所有提交都会被合并。cherry-pick 命令允许你选择单个提交进行整合。

遴选的好处

下面的情况可能会让你更容易理解遴选功能。

想象一下,你正在为即将到来的每周冲刺实现新功能。当你的代码准备好了,你会把它推送到远程分支,准备进行测试。

然而,客户并不是对所有修改都满意,要求你只呈现某些修改。因为客户还没有批准下次发布的所有修改,所以 git rebase 不会有预期的结果。为什么会这样?因为 git rebase 或者 git merge 会把上一个冲刺的每一个调整都纳入其中。

遴选就是答案!因为它只关注在提交中添加的变更,所以遴选只会带入批准的变更,而不添加其他的提交。

还有其他几个原因可以使用遴选:

  • 这对于 bug 修复是必不可少的,因为 bug 是出现在开发分支中对应的提交的。
  • 你可以通过使用 git cherry-pick 来避免不必要的工作,而不用使用其他选项例如 git diff 来应用特定变更。
  • 如果因为不同 Git 分支的版本不兼容而无法将整个分支联合起来,那么它是一个很有用的工具。

2、使用方法

1、在dev分支提交代码,得到提交记录

 2、切换到想要合并的目标分支

 3、点击原先提交的代码选择cherry-pick即可将代码合并到你的目标分支上

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

cherry-pick的定义和使用方法 的相关文章

  • 如何升级 Windows 中 git svn 使用的 SVN 版本?

    我的公司正在将SVN升级到1 7 检查git svn version显示正在使用的SVN版本是1 4 6 我想获得 git svn 使用的 SVN 版本接近 1 7 但是 我没有看到有关更新 git svn 使用的 SVN 版本 在 Win
  • 自动生成/删除詹金斯工作

    我正在寻找一种自动创建一组詹金斯作业的方法 通常在创建新的 git 分支之后 我已经为maven尝试过这个插件 http evgeny goldin com wiki Maven jenkins plugin http evgeny gol
  • 如何禁用 GitHub 中的拉取请求?

    我试图了解如何禁用 github 中的 拉取请求 问题一 我们正在尝试使用变基工作流程 这意味着如果不是快速推进 那么使用拉取请求可能会有害 一种解决方案 为我想要禁用拉取请求的分支设置分支权限 或者将我添加为任何进入 master 的内容
  • 在 .gitconfig 中隐藏 GitHub 令牌

    我想将所有点文件存储在 GitHub 上 包括 gitconfig 这需要我将 GitHub 令牌隐藏在 gitconfig 中 为此 我有一个 gitconfig hidden token 文件 这是我打算编辑并放在隐藏令牌的 git 下
  • 自动同步两个 git 存储库

    是否可以保持同步两个 Github 存储库 远程 的特定文件夹 有两个 github 存储库 repoA 和 repoB 这两个存储库都有名为 ABC 的文件夹以及其他独特的文件夹 如果repoA的文件夹ABC中的任何文件有更新 我想自动更
  • 清理远程 Git 分支

    我已经将 SVN 存储库移至 Git 可能由于多次克隆 我现在只剩下一堆看起来像这样的分支 BranchA origin BranchA remotes BranchA remotes origin BranchA remotes orig
  • 为什么 git-svn 应该积极搜索旧历史?

    当我运行 git svn clone s 时发生了一些奇怪的事情 尽管以下信息告诉我们不要惊慌 但我想知道为什么会出现这种 svn 错误 为什么这个路径不存在 是被别人删除了吗 如果是 为什么 git svn 应该积极搜索旧历史记录 Ini
  • git-svn 如何知道要提交到哪个分支?

    我的存储库是 SVN 我使用 git 进行所有开发 我们有一个标准布局 我用以下命令初始化了我的本地存储库git svn init s
  • 更改先前提交的作者姓名:快进推送被拒绝

    我最近在 GitHub 上打开了一个存储库 我是 Git 新手 与新人一样 我使用默认名称和电子邮件进行提交 按照最佳菜鸟传统 我发现五次提交为时已晚 现在乐趣开始了 因为我开始搜索有关如何更改这些提交的作者和提交者名称的信息 美好的 我基
  • Spring Cloud Config - 不允许使用 git-upload-pack

    我有一个在 docker 环境中运行的 spring boot 应用程序 它连接到 Git 存储库以获取应用程序的配置 我的问题是 当尝试获取 properties 文件时 应用程序有时会出错 这很奇怪 因为如果我更改用户和密码 同一个应用
  • 为别名命令添加“git help”?

    我已经实现了一个 Git 命令并使用 git 别名将其连接到 Git 但是有没有办法连接 Git 帮助 我在 Windows 上运行 如果我发出git help mycmd我收到一个弹出窗口 告诉我 Git 找不到 git mycmnd h
  • 使用 GitHub,在添加现有存储库时如何推送所有分支?

    我创建了一个新的 GitHub 存储库 我想将现有的存储库放在那里 我按照说明操作 cd existing git repo git remote add origin email protected cdn cgi l email pro
  • VS Code 在交互式变基期间不会等待我 [重复]

    这个问题在这里已经有答案了 如果我使用交互式变基git rebase i使用为 Git 配置的默认编辑器 一切都运行良好 如果我在我的全局中添加以下内容 gitconfig core editor C Program Files x86 M
  • Android repo 脚本创建的 .repo/projects/ 中的裸 git 存储库的用途是什么?

    The 安卓源码 http android git kernel org 由以下人员管理repo http source android com source version control html 使用 repo 同步时 一个名为 re
  • 在种子项目上构建时如何组织 git 存储库

    我正在基于从 github 克隆的种子项目 MEAN io 构建一个网站 如何将这些文件与我自己的文件分开 由于该种子提供了广泛的文件框架 因此我自己的文件分布在整个项目中 我希望能够从种子中提取更新 但不能将其与我添加的文件混合 我知道我
  • Git 删除其他人从远程所做的最后提交

    所以 我的情况是 错误地 我已经授予某人对我的分支的承诺 现在 在我的本地 我已经进行了提交 当我尝试将其推送到远程时 它显示远程在前面 因为对方已经将他的代码推送到了这个分支并进行了多次提交 现在 我可以从远程删除这些提交而不将拉取到本地
  • Git:忽略版本控制文件

    gitignore 文件对于忽略一些我们不想控制的文件非常有用 不幸的是 当文件已处于版本控制之下时 它无法使用 例如 我的 gitignore 已添加到 git 中 文件可能与我的同事想要的不同 例如我想忽略 Vim 文件 每当我对此文件
  • Git - 使用过滤器分支删除带有空变更集的提交

    如何使用 git filter branch 删除没有变更集的提交 我使用以下方法重写了我的 git 历史记录 git filter branch tree filter rm r f my folder f HEAD 效果很好 但现在我有
  • 是否可以使用“git gc”来打包引用日志对象?

    正如答案所暗示的https stackoverflow com a 32025729 https stackoverflow com a 32025729我已经配置了远程裸仓库 git config gc pruneExpire never
  • gerrit - git(pull、checkout、cherrypick)的用途是什么?

    在 Android 的 gerrit ex 中 link https android review googlesource com c 109934 要下载补丁 我看到4个选项 回购下载 checkout pull 择优挑选 它们之间有什

随机推荐

  • 安卓 android:setInputType()属性全面收藏!

    1 输入类型为没有指定明确的类型的特殊内容类型 editText setInputType InputType TYPE NULL 2 输入类型为普通文本 editText setInputType InputType TYPE CLASS
  • Unity 基础 之 OnMouse 简单实现 GameObject 和 UGUI 元素随着鼠标移动,拖动的效果

    Unity 基础 之 OnMouse 简单实现 GameObject 和 UGUI 元素随着鼠标移动 拖动的效果 目录 Unity 基础 之 OnMouse 简单实现 GameObject 和 UGUI 元素随着鼠标移动 拖动的效果 一 简
  • 分布式内存和分布式数据库

    分布式内存 memcached redis 分布式内存数据库 mangdodb redis hbase 12306分布式内存数据库 GemFire mapreduce spark scala Hbase
  • MySQL 表的 增删查改

    表的 CRUD 操作 一 新增 数据 Create 1 单行数据 全列插入 2 多行数据 指定列插入 二 查询 数据 Retrieve 1 全列查询 2 指定列查询 3 查询字段为表达式 4 别名 5 去重 distinct 6 排序 or
  • 假设一个登录页面,你会如何测试

    问题 假设是一个登陆页面 包括用户名 密码 登录 勾选框 注册 你会如何进行测试 1 功能测试 1 输入为空 点击提交 是否有错误信息 非空检查 2 输入正确的用户明 密码 点击提交 是否正确登录 正常登录 3 输入错误的用户明或者错误的密
  • C语言计算任意两日期之间天数

    今天复习了会Program in c 有道题目计算任意两个日期之间的天数 想了好久 最后写了一个很挫的程序 include
  • mybatis,中解决不进mapper,不报错 问题

    idea工具中spring boot使用 mybatis 中解决不进mapper 不报错 问题 在resources下的application properties 中配置 mybatis mapper locations classpat
  • 回归及相关模型

    线性回归模型 一元线性回归模型使用单一特征来预测响应值 拟合的最佳曲线通过最小化预测值和真实值之间的误差得到 多元回归模型利用多个自变量估计因变量 从而解释和预测因变量的值 优点 模型简单 部署方便 回归权重可以用于结果分析 训练快 缺点
  • C++的构造tips

    作者 匿名用户 链接 https www zhihu com question 30196513 answer 563560938 来源 知乎 著作权归作者所有 商业转载请联系作者获得授权 非商业转载请注明出处 C 难就难在 在C 中你找不
  • 如何将一个cpp文件放入到已有ROS工作空间中编译通过以及如何调用第三方库

    如何将一个cpp文件放入到已有ROS工作空间中编译通过以及如何调用第三方库 1 创建一个新的功能包 catkin create pkg 自定义ROS包名 roscpp rospy std msgs 2 helloworld 在src中添加你
  • 基于Matlab的无标度网络仿真

    基于Matlab的无标度网络仿真 无标度网络 Scale Free Network 是一种网络拓扑结构 其度分布服从幂律分布 即只有少数节点具有非常高的度 这种网络结构在许多实际系统中都有广泛的应用 如社交网络 互联网和生物网络等 在本文中
  • Springboot打Jar并扫码jar包下的Bean

  • Qt学习总结——飞机大战小游戏制作

    Qt学习总结 飞机大战小游戏制作 1 需求分析 这篇文章写于2020年暑假 完成学校实训项目之后 对自己的项目实践做了一个总结 回顾整个项目的制作过程 同时也复习一下Qt的相关知识 总结项目制作过程中出现的不足之处 如果有同学想尝试使用Qt
  • 深度强化学习系列(2): ERROR: GLEW initalization error: Missing GL version

    当深度强化学习之 6 中的环境安装好之后 一阵欣喜 觉得可以干大事了 于是激动的不行 迫不及待的想看效果 然而幸福来的太快就容易让人失望的越厉害 因此美好的事情总是值得多次磨砺 废话不说了 爆出的错误是这样的 Running trained
  • 从零使用electron搭建桌面端可视化编辑器Dooring

    之前有朋友希望我基于H5 Dooring开发一款桌面端应用 最近刚好有时间 就花了小半天时间从零使用electron开发了桌面端的离线软件Dooring electron 因为之前用electron比较少 今天刚好学了一下 也基本把前后端打
  • sklearn中的make_moons函数使用

    主要参数作用如下 n numbers 生成样本数量 shuffle 是否打乱 类似于将数据集random一下 noise 默认是false 数据集是否加入高斯噪声 random state 生成随机种子 给定一个int型数据 能够保证每次生
  • Weblogic 12c 负载均衡和session复制

    在上一篇 我们介绍了weblogic集群的部署和session的复制 如何将请求负载均衡到这个三个服务器上呢 这里提供两种方式 1 weblogic自带的proxy代理 2 nginx实现负载均衡 一 通过proxy实现负载均衡 1 创建p
  • PyTorch动态神经网络

    PyTorch 是 PyTorch 在 Python 上的衍生 因为 PyTorch 是一个使用 PyTorch 语言的神经网络库 Torch 很好用 但是 Lua 又不是特别流行 所有开发团队将 Lua 的 Torch 移植到了更流行的语
  • 在linux下启动tomcat命令

    操作步骤 第一步 进入tomcat的bin目录 cd usr local tomcat bin 第二步 使用tomcat关闭命令 shutdown sh 第三步 查看tomcat是否关闭 ps ef grep java如果显示以下信息 则说
  • cherry-pick的定义和使用方法

    1 定义 使用遴选 cherry pick 命令 Git 可以让你将任何分支中的个别提交合并到你当前的 Git HEAD 分支中 当执行 git merge 或者 git rebase 时 一个分支的所有提交都会被合并 cherry pic