Git 精通之道:使用 Cherry-Pick 选择性合并提交的高阶指南

想要分批分时间推送代码
做了大量修改后,想要将这些修改按功能或逻辑分开提交

git cherry-pick 允许你选择某个分支中的一个或多个提交(commits),然后将这些提交复制到当前分支上。这个命令非常适合在你只需要从另一个分支上获取某些特定更改,而不是整个分支内容时使用。

如何使用

基本的 git cherry-pick 命令格式如下:

git cherry-pick <commit-hash>

其中 <commit-hash> 是你想要复制到当前分支上的提交的哈希值。哈希值可以通过 git log 命令查找。

示例步骤

假设你正在修复一个问题,发现在另一个分支上已经有了修复这个问题的提交,你希望将这个修复应用到你当前的分支上。你可以这样操作:

  1. 找到需要的提交的哈希值

    • 切换到包含所需提交的分支。
    git checkout other-branch
    
    • 使用 git log 查找提交的哈希值。
    git log
    

    在输出中,找到你想要的提交,并复制它的哈希值。

  2. 切换回你的工作分支

    git checkout your-branch
    
  3. 使用 cherry-pick 应用该提交

    git cherry-pick <commit-hash>
    

    <commit-hash> 替换为你在第一步中复制的哈希值。

高级用法

  • 应用多个提交:你可以一次性 cherry-pick 多个提交,只需要在命令中依次列出所有想要应用的提交的哈希值。

    git cherry-pick <commit-hash1> <commit-hash2>
    
  • 应用一系列提交:如果你想要应用一个连续的提交序列,可以使用下面的语法:

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

    这会应用从 <start-commit-hash><end-commit-hash>(包含这两个提交)之间的所有提交。

注意事项

  • 冲突git cherry-pick 时可能会遇到冲突,就像合并时一样。如果发生冲突,Git 会停止应用当前的提交,并要求你解决冲突。解决冲突后,你需要使用 git cherry-pick --continue 来完成 cherry-pick 操作。
  • 使用场景:虽然 cherry-pick 很有用,但它改变了提交的上下文,有时可能会引起问题。因此,建议只在确实需要时使用,比如修复从其他分支提取特定的更改。

git cherry-pick 提供了一种灵活的方法来选择性地应用提交,有助于在分支间管理特定的更改。不过,要谨慎使用,以避免可能的冲突或混乱。


如果工作已经分在不同的提交上,且想要一次性推送一批提交,可以先将这些提交合并为一个(通过交互式 rebase),然后再推送。

git rebase -i HEAD~<number-of-commits>

在交互式模式中,您可以选择将部分提交合并(squash)为一个。

  • 12
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值