TortoiseGit 入门指南13:拣选

这篇具有很好参考价值的文章主要介绍了TortoiseGit 入门指南13:拣选。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

对于多分支的代码库,将代码从一个分支转移到另一个分支是常见需求。

这时分两种情况。一种情况是,你需要另一个分支的所有代码变动,那么就采用 合并(merge)。另一种情况是,你只需要部分代码变动(某几个提交),这时可以采用 拣选(Cherry pick)。

通俗的讲 拣选 直接把某一次 提交 (commit)拿过来,作为最新一次提交,就像是直接摘了一颗樱桃加在链表最前面,所以叫Cherry pick (拣选)。

如果你感兴趣,可以从 Git 的底层来了解下拣选,如果不感兴趣,可以忽略这些内容。

git cherry-pick <commitHash>

该命令将指定的提交 commitHash 应用于当前分支。这会在当前分支产生一个新的提交,当然它们的哈希值会不一样。

举例来说,代码仓库有 masterfeature 两个分支。

a - b - c - d   Master
 \
     e - f - g  Feature

现在将提交 f 应用到 master 分支。

# 切换到 master 分支
$ git checkout master

# 拣选 操作
$ git cherry-pick f

上面的操作完成以后,代码库就变成了下面的样子。

a - b - c - d - f   Master
 \
     e - f - g      Feature

从上面可以看到,master分支的末尾增加了一个提交 f

git cherry-pick 命令的参数,不一定是提交的哈希值,分支名也是可以的,表示转移该分支的最新提交。

$ git cherry-pick feature

上面代码表示将 feature 分支的最近一次提交,转移到当前分支。

拣选的一般步骤

test-合并指定提交 分支中的某个提交应用到 master 分支的步骤如下:

  1. 切换到 master 分支:鼠标右键 -Tortoise Git - Switch/Checkout...,选择 master 分支。

    TortoiseGit 入门指南13:拣选,Git,TortoiseGit,git

  2. 打开 提交日志对话框,切换到 test-合并指定提交 分支,选中要 拣选 的某个提交或多个提交,然后右击鼠标弹出右键菜单,选择 Cherry Pick this commit...(选中一个提交)或 Cherry Pick select commits...(选中多个提交)。

TortoiseGit 入门指南13:拣选,Git,TortoiseGit,git

  1. 这里选中 分支提交2,右击鼠标弹出右键菜单,选择 Cherry Pick this commit... 弹出 拣选 对话框。

TortoiseGit 入门指南13:拣选,Git,TortoiseGit,git

拣选对话框与变基(Rebase)对话框很像。顶部窗口中每行显示一个选中的要 cherry-pick 的提交。顶部窗口下面的按钮控制操作,比如选取(Pick)提交、编辑、跳过等,还可以选择多个提交的顺序。

选中一行提交后,在底部窗口将显示受影响的文件。

  1. 选中要拣选的提交,单击 Continue 按钮。
  2. 如果没有冲突,在弹出的界面中按下 Done 按钮完成 拣选 操作。

注意:拣选可能产生合并冲突,在下面的 处理拣选冲突 中介绍如何解决冲突。

处理拣选冲突

1.在 拣选的一般步骤 一节中,最后的合并可能会有冲突。如果有冲突,在 Cherry Pick 对话框的底部窗口中会显示出冲突的文件:

TortoiseGit 入门指南13:拣选,Git,TortoiseGit,git

  1. TortoiseGit会使用特定的图标标示出冲突的文件:

    TortoiseGit 入门指南13:拣选,Git,TortoiseGit,git

  2. 选中冲突文件,在右键菜单中选择 TortoiseGit - Edit Conflicts 启动外部合并工具/冲突编辑器手动解决冲突。

TortoiseGit 入门指南13:拣选,Git,TortoiseGit,git
这里 CHERRY_PICK_HEAD(77c84bf9) 是我们要合并的源文件,与 Base 文件相比较可以看出新增加了一个内容为 “分支提交5” 的提交,这个提交是我们要拣选到主分支( HEAD 指向的文件)的提交。
4. 手动编辑冲突,需要把 “分支提交5” 内容拷贝到主分支(HEAD指向的文件),然后保存:

TortoiseGit 入门指南13:拣选,Git,TortoiseGit,git
5. 手动修改冲突文件后,执行 TortoiseGit - Resolve... 菜单项,在弹出的对话框中点击 OK按钮,将刚刚修改的冲突文件标记为 冲突已解决(resolve)
TortoiseGit 入门指南13:拣选,Git,TortoiseGit,git
7. 标记为冲突已解决后,TortoiseGit弹出下一步操作界面。正常的合并冲突流程需要做一次提交,填写本次冲突解决的信息,但我们这里是拣选合并,并不需要手动做一次提交,所以这里点击OK按钮,而不要点Commit...按钮!(这是与普通合并冲击解决流程的唯一区别)。

TortoiseGit 入门指南13:拣选,Git,TortoiseGit,git
8. 回到拣选对话框,在底部窗口按下 F5 快捷键刷新显示内容,可以看到文件已经不是冲突状态。这时按下 Commit 按钮,让 TortoiseGit 自动做一次提交。注意这次提交并不需要你填写什么信息,TortoiseGit 会把拣选的提交信息搬运到这次提交中。

TortoiseGit 入门指南13:拣选,Git,TortoiseGit,git
8. 自动完成一次提交后,按下 Done 按钮完成 拣选 操作。

TortoiseGit 入门指南13:拣选,Git,TortoiseGit,git









读后有收获,资助博主养娃 - 千金难买知识,但可以买好多奶粉 (〃‘▽’〃)
TortoiseGit 入门指南13:拣选,Git,TortoiseGit,git文章来源地址https://www.toymoban.com/news/detail-598037.html

到了这里,关于TortoiseGit 入门指南13:拣选的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • TortoiseGit 入门指南14:比较差异

    版本控制系统最常见的应用是 查看发生了哪些变化 。通过比较代码之间的差异,你可以清楚地了解到代码的改动情况。这在代码审查、团队协作、版本控制等方面都非常有用。 代码审查:通过比较代码的差异,可以更方便地进行代码审查。你可以清晰地看到新增、修改和删

    2024年02月04日
    浏览(58)
  • Git入门指南(手把手教学)

    Git是一种分布式版本控制系统,它是由Linus Torvalds为了管理Linux内核开发而开发的。与中心化的版本控制系统(如SVN)不同,Git是一种分布式系统,它将代码库(repository)复制到多个开发者的本地计算机上,每个开发者都有自己的代码库,可以在本地提交代码、管理分支、合

    2023年04月14日
    浏览(48)
  • TortoiseGit 入门指南17:使用子模块

    子模块( submodule )是一种将一个 Git 仓库作为另一个 Git 仓库的子目录进行管理的方法。它允许你将一个 Git 仓库嵌套到另一个仓库中,并保持提交的独立。 这对于管理依赖关系和共享代码非常有用。比如我有一个模块库 common ,里面有一些所有项目都可能会用到的模块,这

    2024年02月03日
    浏览(50)
  • TortoiseGit 入门指南11:还原与重置

    Git 就像个时光机器,能让我们还原到任何提交。 假如我们在查看一个干净的代码仓库,干净意味着工作区中的文件保持着最后一次提交的状态,没有修改。在查看的过程中,我们有意或无意的修改了工作区中的文件,之后我们想把这些文件恢复成查看前的样子。像这样 要还

    2024年02月16日
    浏览(50)
  • TortoiseGit 入门指南02:创建和克隆仓库

    本节讲解如何使用 TortoiseGit 创建和克隆仓库。但在此之前,我们先来看下 TortoiseGit 软件的一个特色:图标。 TortoiseGit 会给 工作区 中的文件和文件夹叠加图标( Icon Overlays ),图标反应的是这些文件和文件夹的当前状态。目前,共 9 种图标。 按照图中数字标出的顺序,其含

    2024年02月13日
    浏览(46)
  • Git入门使用到远程仓库全指南

    本文是面向零基础者的Git入门教程,内容较为基础简单,主要来源于各种资料整合以及个人使用经验,仅作基本了解性介绍。内容基本涵盖Git常用操作,以各种命令为中心,逐一解释其用法和注意事项。另附在VScode利用其辅助功能使用Git的介绍。 Git是一个开源的分布式版本控

    2024年02月04日
    浏览(39)
  • TortoiseGit 入门指南03:将修改提交到版本库

    你现在应该已经有了一个仓库,在工作过程中会对项目做一些修改,比如添加代码、修复错误等等,你将不定时的将这些更改 提交 (commit)到代码仓库。 术语 提交 是将 暂存区 内容放入 版本库 。这个过程涉及到 Git 的一些基本概念,需要在这里说明。我在《TortoiseGit 入门

    2024年02月13日
    浏览(45)
  • 【掌握版本控制:Git 入门与实践指南】多人协作

                                                      🎬慕斯主页 : 修仙—别有洞天                                               ♈️ 今日夜电波: 泥中に咲く—ウォルピスカーター                                                      

    2024年03月16日
    浏览(52)
  • 从入门到精通:Git版本控制系统完全指南

    💂 个人网站:【海拥】【摸鱼游戏】【神级源码资源网】 🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】 💅 想寻找共同学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 Git是一个强大的版本控制系统,它可以帮助开发者轻松地管理代码版本、协作开

    2023年04月09日
    浏览(49)
  • 【掌握版本控制:Git 入门与实践指南】远程操作|标签管理

                                                      🎬慕斯主页 : 修仙—别有洞天                                               ♈️ 今日夜电波: 泥中に咲く—ウォルピスカーター                                                      

    2024年03月17日
    浏览(59)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包