git cherry-pick的用法


git cherry-pick 是一个非常有用的 Git 命令,它允许你将某个提交(commit)的更改应用到当前分支上,而不需要合并整个分支。


基本用法

git cherry-pick <commit-hash>

这会将指定的提交应用到当前分支,并创建一个新的提交。


常用选项

  1. 选择多个提交

    git cherry-pick <commit1> <commit2> <commit3>
    
  2. 选择一个范围的提交(不包括起始提交):

    git cherry-pick <start-commit>..<end-commit>
    
  3. 包括起始提交

    git cherry-pick <start-commit>^..<end-commit>
    
  4. 不自动提交(只更新工作区和暂存区):

    git cherry-pick -n <commit-hash>
    
  5. 编辑提交信息

    git cherry-pick -e <commit-hash>
    
  6. 遇到冲突时继续(用于批量cherry-pick):

    git cherry-pick --continue
    
  7. 放弃当前cherry-pick操作

    git cherry-pick --abort
    

使用场景

  1. 将修复的bug应用到多个分支:在维护分支上修复了一个bug,想把这个修复应用到主分支上。

  2. 部分合并功能:某个分支上有多个提交实现了不同功能,你只想合并其中的一部分。

  3. 撤销特定提交:可以通过cherry-pick反向提交来撤销特定更改。


注意事项

  1. cherry-pick会创建新的提交,即使内容相同,哈希值也会不同。

  2. 如果遇到冲突,需要手动解决冲突后使用git add标记已解决的文件,然后继续操作。

  3. 过度使用cherry-pick可能导致提交历史混乱,应谨慎使用。

  4. 对于需要合并大量提交的情况,考虑使用git mergegit rebase可能更合适。


示例

# 查看提交历史找到要应用的提交哈希
git log --oneline

# 应用单个提交
git cherry-pick abc1234

# 应用多个不连续的提交
git cherry-pick abc1234 def5678

# 应用一个范围的提交
git cherry-pick abc1234..def5678
posted @ 2025-06-19 17:26  guanyubo  阅读(665)  评论(0)    收藏  举报