首页 > 其他分享 >git cherry-pick 用法

git cherry-pick 用法

时间:2024-07-03 19:10:22浏览次数:26  
标签:git 提交 cherry 哈希 pick 分支


git cherry-pick 是一个 Git 命令,用于将一个或多个提交从一个分支复制并应用到当前分支。

这个操作允许你有选择性地将特定提交引入到不同的分支中,而不需要合并整个分支。

 

以下是关于 git cherry-pick 的一些关键点和使用方法:

1 基本用法

  要使用 git cherry-pick,首先需要找到你想要应用的提交的哈希值(commit hash)。这个哈希值是 Git 为每个提交分配的唯一标识符。然后,执行以下命令:

git cherry-pick <commit-hash>

  这会将指定的提交应用到当前分支的头部,创建一个新的、具有相同更改的提交。


2 处理冲突

  如果 cherry-pick 操作导致冲突,Git 会暂停操作,并要求你手动解决冲突,就像在合并或 rebase 过程中一样。你需要编辑冲突文件,删除 Git 插入的冲突标记,保留你想要的内容,然后:

git add <conflicted-file>
git cherry-pick --continue

  如果决定放弃这次cherry-pick,可以使用:

git cherry-pick --abort

 

3 多个提交

  你也可以一次性应用多个提交,只需提供一系列的提交哈希值即可,它们可以是连续的也可以是不连续的,用空格分隔:

git cherry-pick <commit-hash1> <commit-hash2> ...

 

4 从一个范围pick

  如果你想要应用一系列连续的提交,可以使用两个提交的哈希值来指定一个范围:

git cherry-pick <start-commit-hash>..<end-commit-hash>

  注意,不包括 end-commit-hash 对应的提交。

 

5 场景

  合并单个提交:当你只需要另一个分支中的某一次提交时。

 

  修复bug:在某个分支上修复了一个 bug,想快速将这个修复应用到其他分支,而不合并其他无关的更改。

  提取特定功能:在一个分支上开发的功能需要移植到另一个分支,但不想合并整个分支的改动。

 

6 注意事项
  git cherry-pick 会产生一个新的提交,即使内容相同,它的哈希值也会与原始提交不同,因为它是一个全新的提交。

  使用此命令时,应确保当前工作区干净,没有未提交的更改,以避免不必要的冲突或混淆。

 

git cherry-pick 提供了一种灵活的方式来跨分支移动和复用提交,非常适合精细化的版本管理和代码整合工作流。

 

Link:https://www.cnblogs.com/farwish/p/18282395

标签:git,提交,cherry,哈希,pick,分支
From: https://www.cnblogs.com/farwish/p/18282395

相关文章

  • Gitlab代码管理工具安装配置
    前言:没有真正的证书与域名建议使用http+ip的方式在内网使用,不建议使用假的域名地址一、安装前配置#更改主机域名hostnamectlset-hostnamegitlab.dome.combash#配置hosts底部添加下面内容vim/etc/hosts############################ipgitlab.dome.com########......
  • Gitblit的基本操作和技巧
    Gitblit是一个开源的、轻量级的Git服务器,使用Java编写,能够提供简单的Web界面来浏览Git仓库、管理用户和仓库权限,以及进行一些基本的Git操作。安装时最重要的是配置gitblit.properties文件以自定义Gitblit的行为,例如更改端口、设置HTTPS。如果不要求严格的认证,最好同时设置http......
  • Atcoder ARC090F Number of Digits
    记\(n\)为题面的\(S\)。能发现对于\(f(l)=8\),共有\(9\times10^7\)个数。此时就已经有\(8\times9\times10^7>10^8=n_{\max}\)了,就说明不存在\(f\ge8\)的情况,还满足这部分对应的数能全被选满。所以可以知道对于\(f(l)\ge8\)的情况,只存在\(f(r)-f(l)=......
  • 【Git】多用户/多环境配置
    文章目录前言一、用户设置了解git仓库配置级别用户配置二、密钥配置生成非对称密钥github上配置公钥配置`.ssh/config`文件三、测试链接总结前言现在我们就github和gitLab两个库为例来设置,我们希望每次提交时,系统自动识别域名,不用反复的输入密码,一、......
  • 【playwright学习】github create issue test
    fromplaywright.sync_apiimportsync_playwright,Page,Playwright,Browser,expectimportpytestimportrandomimportre@pytest.fixture(scope="module",autouse=True)deflogin_github(playwright:Playwright):chrome=playwright.chromium.launch(he......
  • git简介以及git操作软件下载以及安装教程,git基础指令介绍,持续更新中~
    什么是Git?最近在学一些git的基础指令,仔细地了解了一下git,发现了他的强大功能,分享一下:Git是一个强大的工具,它在软件开发中扮演着至关重要的角色。Git是一个开源的分布式版本控制系统,由LinusTorvalds创建,用于有效、高速地处理从小到大的项目。Git是目前世界上最流行的版本......
  • GIT - 一条命令把项目更新到远程仓库
    前言阅读本文大概需要3分钟说明更新项目到远程仓库只需要执行一条命令,相当的简便步骤第一步编辑配置文件vim~/.bash_profile第二步写入配置文件gsh(){localmsg="${1:-ADDCOMMITPUSH}"gitadd.&&gitcommit-m"$msg"&&gitpush}第三步......
  • The following untracked working tree files would be overwritten by merge/ git st
    背景给同学解决问题时,发现无法拉取远程的分支。解决他在C:\Users\用户名\路径下,建立了一个git仓库,然后在桌面上创建了一个文件夹,文件夹内部又新建了一个文件夹,导致gitstatus显示大量父级目录(多级父级)的文件。删除父级中的.git文件即可拉取前没有initgitpull用惯了......
  • GitHub每日最火火火项目(7.2)
    Asabeneh/30-Days-Of-Python:这是一个为期30天的Python编程挑战项目,旨在通过逐步引导的方式帮助学习者在30天内掌握Python编程语言。然而,实际完成这个挑战可能需要超过100天,学习者可以根据自己的节奏进行。该项目还提供了相关视频的链接(https://www.youtube.com/cha......
  • git 通过ssh 拉 gitlab项目代码
     通过https登录token 拉取不到,就用ssh吧! 先查看本地git的配置gitconfig--list--global发现没有配置增加配置gitconfig--globaluser.name"beckh"gitconfig--globaluser.email"自己的邮箱"生成密钥ssh-keygen-trsa-C"自己邮箱"参数含义:-t指定密钥......