网易首页 > 网易号 > 正文 申请入驻

如何使用 Git Cherry-Pick 应用选定的提交

0
分享至

Git 是开发人员的强大工具,使他们能够跟踪代码中的更改、与他人协作以及管理代码文件的不同版本。

Git的一个关键特性是能够挑选提交——选择性地将更改从一个分支应用到另一个分支。本教程探索使用Git cherry-pick 命令来应用选定的提交。

在本指南中,您将学习如何使用 Git cherry-pick 命令将特定提交从一个分支应用到另一个分支。

到本文结束时,您将能够浏览 Git 提交历史记录、有选择地应用更改并解决在此过程中出现的任何冲突。

第 1 步:了解 Git 提交和 Cherry-Pick

在我们深入探讨使用 Git cherry-pick 命令的实际方面之前,了解 Git 提交的概念以及 Git 中的 cherry-picking 需要什么是至关重要的。

了解 Git 提交

在 Git 中,提交是存储库在某个时间点的快照。它包括自上次提交以来您所做的所有更改。Git 中的每个提交都有一个唯一的哈希标识符,它是由哈希算法生成的一串字母数字字符。这个散列用作一个地址,允许 Git 稍后调用、比较或操作提交。

通过创建提交,您可以有效地保存不同版本的代码文件。可以查看、比较甚至还原这些版本,从而为您的项目开发提供极大的灵活性和控制。

了解 Git Cherry-Pick

Git cherry-pick 是一个功能强大的命令,它使您能够从一个分支“挑选”一个提交并将其应用到另一个分支。这在几种情况下非常有用:

  1. 您错误地在错误的分支上进行了提交,并希望将该提交应用于正确的分支。
  2. 您正在处理一个功能分支并修复了一个错误,该错误修复也需要在主分支上进行。
  3. 您希望避免合并整个分支,但您希望在当前分支中包含该分支上的特定提交。

值得注意的是,cherry-pick 操作不会从源分支中删除提交。相反,它在目标分支上创建一个新的提交,其中包括来自精心挑选的提交的更改。这样,两个分支的历史都保持不变。

在以下步骤中,您将学习如何使用 Git cherry-pick 命令。

了解 Git 提交和 cherry-pick 的基本概念是利用 Git 中版本控制功能的第一步。

第 2 步:在单个提交上使用 Git Cherry-Pick

现在我们对 Git 提交和 cherry-pick 有了基本的了解,让我们使用 cherry-pick 命令。在此步骤中,您将把单个提交从一个分支应用到另一个分支。

切换到目标分支

在您挑选提交之前,请确保您位于要应用提交的分支上。使用git checkout命令切换到该分支:

git checkout

替换为目标分支的名称。

识别提交哈希

接下来,您需要确定要挑选的提交。您可以使用命令查看您的提交历史记录git log。此命令将向您显示所有提交的列表,每个提交都有其唯一的哈希值、作者和提交消息。

git log

您将看到类似于以下内容的输出:

commit d4e7618b062bfbeb8f79f430afe5a69a2c2b3396 (HEAD -> main) Author: Your Name Date: Wed Feb 9 14:00:19 2023 -0500 Fixed the bug in the login feature commit c3e5749b64e4d3f93f3d5c6e6c5056757e8a74b1 Author: Your Name Date: Tue Feb 8 11:25:03 2023 -0500 Added new feature

从git log输出中,确定要挑选的提交的哈希。散列是单词“commit”之后的字母数字字符串。在这种情况下,如果我们想挑选我们修复错误的提交,我们将复制哈希`d4e7618b062bfbeb8f79f430afe5a69a2c2b3396`。

使用 Git Cherry-Pick 应用提交

git cherry-pick现在您有了提交哈希,您可以使用命令后跟提交哈希将此提交应用到当前分支:

git cherry-pick d4e7618b062bfbeb8f79f430afe5a69a2c2b3396

替换d4e7618b062bfbeb8f79f430afe5a69a2c2b3396为您提交的哈希值。

运行此命令后,Git 会将指定提交的更改应用到当前分支,并为这些更改创建新的提交。

您现在已经成功地挑选了一个提交!在以下步骤中,您将学习如何挑选多个提交并在挑选过程中解决冲突。

第 3 步:在多个提交上使用 Git Cherry-Pick

在上一步中,我们学习了如何使用git cherry-pick将单个提交从一个分支应用到另一个分支。但是如果你想应用多个提交怎么办?在这一步中,我们将探讨如何挑选多个提交。

切换到目标分支

与挑选单个提交一样,确保您位于要应用提交的分支上。使用git checkout命令切换到该分支:

git checkout

替换为目标分支的名称。

识别提交哈希

接下来,您需要确定要挑选的提交。使用该git log命令查看您的提交历史记录和相应的提交哈希值。

git log

此命令将向您显示类似于以下内容的输出:

commit d4e7618b062bfbeb8f79f430afe5a69a2c2b3396 (HEAD -> main) Author: Your Name Date: Wed Feb 9 14:00:19 2023 -0500 Fixed the bug in the login feature commit c3e5749b64e4d3f93f3d5c6e6c5056757e8a74b1 Author: Your Name Date: Tue Feb 8 11:25:03 2023 -0500 Added new feature

从git log输出中,确定要挑选的提交的哈希值。散列是出现在单词“commit”之后的字母数字字符串。

使用 Git Cherry-Pick 应用提交

现在您有了提交哈希,您可以使用命令git cherry-pick后跟提交哈希将这些提交应用到当前分支:

git cherry-pick d4e7618b062bfbeb8f79f430afe5a69a2c2b3396 c3e5749b64e4d3f93f3d5c6e6c5056757e8a74b1

将d4e7618b062bfbeb8f79f430afe5a69a2c2b3396and替换c3e5749b64e4d3f93f3d5c6e6c5056757e8a74b1为您提交的哈希值。

注意:Git 按照您提供的顺序应用提交。所以,在上面的命令中,Git 会先申请 commit d4e7618b062bfbeb8f79f430afe5a69a2c2b3396,然后再申请 commit c3e5749b64e4d3f93f3d5c6e6c5056757e8a74b1。

运行此命令后,Git 会将指定提交的更改应用到当前分支,并为这些更改创建新的提交。

恭喜!您现在已经成功地挑选了多个提交!在下一步中,您将学习如何解决挑选过程中的冲突。

第 4 步:解决cherry-pick 过程中的冲突

在从一个分支到另一个分支的 cherry-picking 提交过程中,可能会出现冲突。当您尝试git cherry-pick 的提交更改与当前分支中已有的更改相矛盾时,通常会发生这些冲突。Git 无法决定接受哪个更改,因此会出现冲突。

在此步骤中,您将学习如何解决挑选过程中的冲突。

假设您正在挑选一个提交,并且发生了冲突。Git 将暂停 cherry-picking 过程并给你一个类似这样的错误信息:

error: could not apply fa39187... some commit message hint: after resolving the conflicts, mark the corrected paths hint: with 'git add ' or 'git rm ' hint: and commit the result with 'git commit.'

识别和查看冲突

要识别导致冲突的文件,请使用以下git status命令:

git status

Git 会显示导致冲突的文件列表。它们通常被标记为“未合并”。

然后您可以使用您喜欢的文本编辑器打开这些文件。在文件中,您会发现以下列方式标记的冲突更改:

<<<<<<< HEAD changes made on the current branch ======= changes made in the commit you're cherry-picking >>>>>>> name of the commit you're cherry-picking

解决冲突

解决冲突涉及决定保留哪些更改。您可以保留当前分支中的更改、您正在挑选的提交中的更改,或两者的组合。

编辑文件以手动合并更改。做出决定后,删除冲突标记 (` <<<<<<<`, `=======`, `>>>>>>>`) 并保存文件。

继续cherry-pick

解决文件中的冲突后,您需要使用 Git 将其标记为已解决。使用 `git add` 命令后跟文件名:

git add filename

解决所有冲突并将文件标记为已解决后,您可以使用以下内容继续挑选流程:

git cherry-pick --continue

Git 然后将创建一个新的提交,其中包含来自精心挑选的提交的更改。如果不再有冲突,则 cherry-pick 操作将完成。如果与下一次提交有更多冲突(当 cherry-picking 多次提交时),该过程将再次暂停,让您解决这些冲突。

中止cherry-pick

如果您决定不继续使用 cherry-pick,您可以使用以下方法中止操作:

git cherry-pick --abort

该命令将停止 cherry-picking 过程并使您的分支恢复到开始 cherry-pick 之前的状态。

请记住,Git 中的冲突解决涉及很好地理解所做的更改以及它们应该如何合并在一起。在解决冲突后始终检查代码并测试应用程序,以确保一切按预期工作。

结论

在本文中,您学习了如何使用 Git cherry-pick 命令将特定提交从一个分支应用到另一个分支。现在,您可以有选择地将更改拉入当前工作分支,从而增强您的 Git 工作流程。

重要的是要记住,虽然 cherry-pick 是一个强大的工具,但还有更好的方法可以将更改从一个分支集成到另一个分支。Merge 和 rebase 提供了替代方法,可以保持项目开发的更清晰的历史记录。

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
今日!CCTV5直播国乒+中国女排+郑钦文等出战法网+欧冠皇马VS多特

今日!CCTV5直播国乒+中国女排+郑钦文等出战法网+欧冠皇马VS多特

晚池
2024-06-01 00:47:35
2018年,那个检举男友一家贪腐的女子,两年后,自己也被判刑3年

2018年,那个检举男友一家贪腐的女子,两年后,自己也被判刑3年

可乐86
2024-05-16 09:12:38
于正新剧《墨雨云间》开播,躲过34岁吴谨言,却被45岁女配角惊艳

于正新剧《墨雨云间》开播,躲过34岁吴谨言,却被45岁女配角惊艳

奴染
2024-05-29 23:49:42
张常宁袁心玥离场!谁注意到朱婷1个动作?王云蕗倪非凡都被吓到

张常宁袁心玥离场!谁注意到朱婷1个动作?王云蕗倪非凡都被吓到

刺头体育
2024-05-31 18:03:45
比真空更刺激!老公不让穿出门的“面膜内裤”,穿一次就上瘾!

比真空更刺激!老公不让穿出门的“面膜内裤”,穿一次就上瘾!

背包旅行
2024-05-31 15:34:17
他是国军中将俘虏,抗美援朝连提2招对付美军,毛主席:提前特赦

他是国军中将俘虏,抗美援朝连提2招对付美军,毛主席:提前特赦

猫眼观史
2024-05-16 17:20:40
第一县级市,掀翻了7个省会!

第一县级市,掀翻了7个省会!

城市财经
2024-05-31 11:57:24
首败!孙颖莎王楚钦爆大冷,对手没世界排名,输球三大原因曝光

首败!孙颖莎王楚钦爆大冷,对手没世界排名,输球三大原因曝光

小豆豆赛事
2024-06-01 01:20:53
这下真成修仙游戏了!暴雪宣布披风上限从20万提升至1000万

这下真成修仙游戏了!暴雪宣布披风上限从20万提升至1000万

苹果牛看游戏
2024-05-31 12:11:33
事件闹大!出动25万人夜查电动车引争议,官方详细解读,评论炸了

事件闹大!出动25万人夜查电动车引争议,官方详细解读,评论炸了

椰青美食分享
2024-05-31 15:33:25
项立刚:何祚庥这类人应该退出历史舞台,整天贬低国内却不干事

项立刚:何祚庥这类人应该退出历史舞台,整天贬低国内却不干事

芯怡飞
2024-06-01 00:13:07
暴跌500亿!中国榴莲大王,踩中了一颗巨雷

暴跌500亿!中国榴莲大王,踩中了一颗巨雷

金错刀
2024-05-30 17:14:30
真是太难了!欧文4次总决赛打的对手都至少有64胜

真是太难了!欧文4次总决赛打的对手都至少有64胜

直播吧
2024-05-31 12:51:06
历时6年!斥资23亿!西安“最大烂尾盘”彻底被救活?

历时6年!斥资23亿!西安“最大烂尾盘”彻底被救活?

靓仔情感
2024-05-31 20:25:32
杭州90后姑娘从跨国公司辞职回家种玉米,火了!她又去北京读数学博士了

杭州90后姑娘从跨国公司辞职回家种玉米,火了!她又去北京读数学博士了

都市快报橙柿互动
2024-05-31 10:47:18
网传比亚迪计划裁员?优化10到20%,房补车补打折,考核加重…

网传比亚迪计划裁员?优化10到20%,房补车补打折,考核加重…

火山诗话
2024-05-30 20:30:58
美国巨星约翰尼遭枪击身亡!享年37岁,他并没反抗本来可以不用死

美国巨星约翰尼遭枪击身亡!享年37岁,他并没反抗本来可以不用死

娱乐白名单
2024-05-29 12:04:08
什么情况?中国不光卖美债,还分批运回黄金,耶伦口风也变了

什么情况?中国不光卖美债,还分批运回黄金,耶伦口风也变了

奇想世界
2024-05-31 09:35:02
女子与93岁奶奶共居,晒出“油画般”的家,网友惊呼:太羡慕了!

女子与93岁奶奶共居,晒出“油画般”的家,网友惊呼:太羡慕了!

装小宅
2024-05-27 11:07:44
利雅得新月加冕三冠王!卫冕沙王冠,41场不败,创六大纪录

利雅得新月加冕三冠王!卫冕沙王冠,41场不败,创六大纪录

奥拜尔
2024-06-01 05:10:14
2024-06-01 09:02:44
墨谈科技
墨谈科技
业务数码玩家.无聊的博主
2919文章数 563关注度
往期回顾 全部

科技要闻

华为上新!余承东:问界6月销量将超4万辆

头条要闻

媒体:中美防长见面后 美方第一时间发新闻稿积极评价

头条要闻

媒体:中美防长见面后 美方第一时间发新闻稿积极评价

体育要闻

欧文:当老二怎么了?硬就行了!

娱乐要闻

白玉兰提名:胡歌、范伟争视帝

财经要闻

证监会:对恒大地产罚款41.75亿

汽车要闻

外观内饰升级/六项权益 全新哈弗H6开启预售

态度原创

亲子
旅游
艺术
时尚
军事航空

亲子要闻

她居然还是跳的最好的一个

旅游要闻

美国华盛顿年内将迎来大熊猫“宝力”和“青宝”

艺术要闻

穿越时空的艺术:《马可·波罗》AI沉浸影片探索人类文明

今年夏天,穿得越放松越时髦!

军事要闻

拜登称以色列提出新的三阶段停火方案

无障碍浏览 进入关怀版