返回顶部
首页 > 资讯 > 精选 >什么是 Git 遴选
  • 859
分享到

什么是 Git 遴选

2023-06-15 15:06:13 859人浏览 八月长安
摘要

这篇文章主要介绍“什么是 git 遴选”,在日常操作中,相信很多人在什么是 Git 遴选问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”什么是 Git 遴选”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!了解

这篇文章主要介绍“什么是 git 遴选”,在日常操作中,相信很多人在什么是 Git 遴选问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”什么是 Git 遴选”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

了解 git cherry-pick 命令是什么,为什么用以及如何使用。

当你和一群程序员一起工作时,无论项目大小,处理多个 Git 分支之间的变更都会变得很困难。有时,你不想将整个 Git 分支合并到另一个分支,而是想选择并移动几个特定的提交。这个过程被称为 “遴选cherry-pick”。4

本文将介绍“遴选”是什么、为何使用以及如何使用。

那么让我们开始吧。

什么是遴选?

使用遴选(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 分支的版本不兼容而无法将整个分支联合起来,那么它是一个很有用的工具

使用 cherry-pick 命令

在 cherry-pick 命令的最简单形式中,你只需使用 SHA 标识符来表示你想整合到当前 HEAD 分支的提交。

要获得提交的哈希值,可以使用 git log 命令:

$ git log --oneline

当你知道了提交的哈希值后,你就可以使用 cherry-pick 命令。

语法是:

$ git cherry-pick <commit sha>

例如:

$ git cherry-pick 65be1e5

这将会把指定的修改合并到当前已签出的分支上。

如果你想做进一步的修改,也可以让 Git 将提交的变更内容添加到你的工作副本中。

语法是:

$ git cherry-pick <commit sha> --no-commit

例如:

$ git cherry-pick 65be1e5 --no-commit

如果你想同时选择多个提交,请将它们的提交哈希值用空格隔开:

$ git cherry-pick hash2 hash4

当遴选提交时,你不能使用 git pull 命令,因为它能获取一个仓库的提交自动合并到另一个仓库。cherry-pick 是一个专门不这么做的工具;另一方面,你可以使用 git fetch,它可以获取提交,但不应用它们。毫无疑问,git pull 很方便,但它不精确。

自己尝试

要尝试这个过程,启动终端并生成一个示例项目:

$ mkdir fruit.git$ cd fruit.git$ git init .

创建一些数据并提交:

$ echo "Kiwifruit" > fruit.txt$ git add fruit.txt$ git commit -m 'First commit'

现在,通过创建一个项目的复刻来代表一个远程开发者:

$ mkdir ~/fruit.fork$ cd !$$ echo "Strawberry" >> fruit.txt$ git add fruit.txt$ git commit -m 'Added a fruit"

这是一个有效的提交。现在,创建一个不好的提交,代表你不想合并到你的项目中的东西:

$ echo "Rhubarb" >> fruit.txt$ git add fruit.txt$ git commit -m 'Added a vegetable that tastes like a fruit"

返回你的仓库,从你的假想的开发者那里获取提交的内容:

$ cd ~/fruit.git$ git remote add dev ~/fruit.fork$ git fetch devremote: Counting objects: 6, done.remote: Compressing objects: 100% (2/2), done.remote: Total 6 (delta 0), reused 0 (delta 0)Unpacking objects: 100% (6/6), done...
$ git log &ndash;oneline dev/mastere858ab2 Added a vegetable that tastes like a fruit0664292 Added a fruitb56e0f8 First commit

你已经从你想象中的开发者那里获取了提交的内容,但你还没有将它们合并到你的版本库中。你想接受第二个提交,但不想接受第三个提交,所以使用 cherry-pick

$ git cherry-pick 0664292

第二次提交现在在你的仓库里了:

$ cat fruit.txtKiwifruitStrawberry

将你的更改推送到远程服务器上,这就完成了!

避免使用遴选的原因

在开发者社区中,通常不鼓励所以遴选。主要原因是它会造成重复提交,而你也失去了跟踪你的提交历史的能力。

如果你不按顺序地遴选了大量的提交,这些提交会被记录在你的分支中,这可能会在 Git 分支中导致不理想的结果。

遴选是一个强大的命令,如果没有正确理解可能发生的情况,它可能会导致问题。不过,当你搞砸了,提交到错误的分支时,它可能会救你一命(至少是你当天的工作)。

到此,关于“什么是 Git 遴选”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

--结束END--

本文标题: 什么是 Git 遴选

本文链接: https://lsjlt.com/news/280586.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 什么是 Git 遴选
    这篇文章主要介绍“什么是 Git 遴选”,在日常操作中,相信很多人在什么是 Git 遴选问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”什么是 Git 遴选”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!了解...
    99+
    2023-06-15
  • 为什么Git是PHP项目管理的首选?
    Git是一个流行的分布式版本控制系统,被广泛应用于开源软件和商业软件开发中。对于PHP项目,Git是首选的版本控制系统,这是因为Git提供了许多优点,使其成为PHP项目管理的首选。 分布式版本控制系统 Git是一个分布式版本控制系统,这...
    99+
    2023-06-30
    http 关键字 git
  • git库是什么
    Git是一种版本控制系统,用于管理计算机代码历史记录。Git是一种分布式版本控制系统,这意味着开发人员可以在本地计算机上保存代码副本,并在需要时与其他开发人员共享更改。在Git中,每个工作区均为其拥有的完整存储库的副本。然后,开发人员可以轻...
    99+
    2023-10-22
  • git r是什么车
    Git r 是什么车在网络上流传着这样一个段子,相信不少人都听说过:「我有一辆 Git R,一键倒回到过去,还可以让多个人同时来回倒,再也不用担心代码出错了。」对于编程人员来说,Git 可谓是必不可少的工具之一,它通过版本控制和协作管理,帮...
    99+
    2023-10-22
  • git账号是什么
    在软件开发过程中,Git是一个非常流行的版本控制系统。它可以追踪代码修改历史,管理不同代码版本之间的变更,协作开发等等。因此,拥有一个Git账号是很必要的。但是,对于Git新手来说,他们可能不知道Git账号是什么,也可能不知道如何创建一个G...
    99+
    2023-10-22
  • git pull和git clone的区别是什么
    本篇内容介绍了“git pull和git clone的区别是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!区别:“git clone”是...
    99+
    2023-06-21
  • git中的gui是什么
    Git GUI 是一种图形用户界面,它可以帮助开发人员更好地管理和控制他们的 Git 代码库。Git 是一种版本控制系统,它能够帮助开发者管理代码版本,跟踪代码更改以及在团队协作开发中更好地协调工作。Git 版本控制工具广泛应用于开源代码库...
    99+
    2023-10-22
  • 为什么 Git 和 Go 是现代容器打包的首选?
    在当前的技术领域,容器技术已经成为了非常流行的解决方案。而在容器打包方面,Git和Go是现代容器打包的首选。本文将会介绍这两种技术为什么能成为首选,以及它们在容器打包中的使用。 Git是一种分布式版本控制系统,它被广泛应用于软件开发过程中。...
    99+
    2023-09-06
    git 容器 打包
  • 为什么Java和Git是存储索引的最佳选择?
    随着互联网时代的到来,数据的存储和管理变得越来越重要。为了更好地管理数据,索引技术应运而生。索引可以大大提高数据的查询效率,因为它可以通过预先建立的数据结构来快速定位所需的数据。在索引的选择方面,Java和Git已经成为了不可替代的存储索...
    99+
    2023-08-30
    git 存储 索引
  • Git是什么?如何在Python中使用Git?
    Git是一种版本控制系统,它可以帮助开发人员更好地管理和跟踪代码的变化。在Python开发中,使用Git可以帮助我们更好地组织代码、协作开发和管理版本。本文将介绍Git是什么以及如何在Python中使用Git。 什么是Git? Git是一种...
    99+
    2023-11-01
    path git 数组
  • Git提交规范是什么
    本篇内容介绍了“Git提交规范是什么”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、为什么需要规范无规矩...
    99+
    2024-04-02
  • git和gitlab是什么意思
    这篇文章主要介绍了git和gitlab是什么意思,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。git是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版...
    99+
    2023-06-21
  • git指的是什么意思
    这篇文章给大家分享的是有关git指的是什么意思的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。git有多种意思,可以是:1、“分布式版本控制系统”,可以有效、高速地处理从很小到非常大的项目版本管理;2、“高伟达软件...
    99+
    2023-06-21
  • git中的fork是指什么
    这篇文章主要介绍“git中的fork是指什么”,在日常操作中,相信很多人在git中的fork是指什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”git中的fork是指什么”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-26
  • Git版本管理是什么
    本篇内容主要讲解“Git版本管理是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Git版本管理是什么”吧!Git是一个“分布式版本管理工具”。 版本管理工具能够纪录每次的修改,只要提交到版本...
    99+
    2023-06-29
  • git常用命令是什么
    小编给大家分享一下git常用命令是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!设置用户信息这应该是安装完 git 的第一步。我们将添加用户信息 (用户名和邮...
    99+
    2023-06-27
  • 什么是git内部机制
    Git是一种分布式版本控制系统,它被广泛应用于软件开发、版本管理和代码协作。正因为Git的分布式性,每个开发者都可以在本地进行代码管理和版本控制,而不必受限于服务器和网络的限制。Git内部机制是什么?Git内部机制主要包括四个方面:对象、索...
    99+
    2023-10-22
  • git分支是干什么用
    Git是一种分布式版本控制系统,通过管理项目代码的变化来跟踪和协调开发人员之间的工作。分支是Git的一个重要概念,用于管理代码的不同版本。本文将探讨Git分支的基本概念及其用途。Git分支是什么?在Git 中,分支就像是一个指向某一特定提交...
    99+
    2023-10-22
  • GIT是什么?GO语言中如何使用GIT?
    GIT是一个分布式版本控制系统,可以帮助团队协作管理代码,跟踪文件变化,以及备份重要数据。GIT最初由Linus Torvalds在2005年开发,其目的是为了更好地管理Linux内核开发。自那时以来,GIT已经成为了全球最受欢迎的版本控...
    99+
    2023-07-03
    数据类型 框架 git
  • Git初始化命令是什么
    这篇文章给大家分享的是有关Git初始化命令是什么的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 初始化命令命令作用git init初始化 git,创建 .git 文件感...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作