> 技术文档 > git cherry-pick从一个分支中选择一个或多个提交(commit)并将其应用到当前分支_git cherry-pick多个commit

git cherry-pick从一个分支中选择一个或多个提交(commit)并将其应用到当前分支_git cherry-pick多个commit

git cherry-pick 是一个 Git 命令,用于从一个分支中选择一个或多个提交(commit)并将其应用到当前分支。这在需要将特定的更改移植到另一个分支时非常有用,而不需要合并整个分支。

使用步骤:

  1. 确保在目标分支上:首先,切换到你希望应用这些提交的目标分支。

    git checkout target-branch
  2. 执行 cherry-pick:使用 git cherry-pick 命令,并提供你想要应用的提交的哈希值。

    git cherry-pick <commit-hash>

    如果你有多个提交需要应用,可以用空格分隔多个提交哈希:

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

    连续的多个commit
    当你要cherry - pick一系列连续的提交时,可以使用提交范围的表示方法。假设你要cherry - pick从提交start - hash到end - hash(包含start - hash)的提交,命令如下:

git cherry - pick start - hash^..end - hash

这里的start - hash^表示包含start - hash这个提交。

  1. 解决冲突:如果在应用提交时出现冲突,Git 会提示你解决冲突。解决冲突后,使用以下命令标记冲突已解决并继续:

    git add <resolved-files>git cherry-pick --continue
  2. 中止 cherry-pick:如果决定不再继续 cherry-pick,可以使用以下命令中止操作:

    git cherry-pick --abort

注意事项:

  • 提交哈希值:提交哈希值可以通过 git log 查看。
  • 顺序:如果要 cherry-pick 多个提交,通常需要按提交的顺序进行,以避免依赖关系问题。
  • 冲突:在处理冲突时,确保所有冲突文件都已解决并添加到暂存区。

通过 git cherry-pick,你可以灵活地将特定的更改应用到不同的分支,而不需要合并整个分支的所有更改。