在git中,如何从一个分支中删除提交并将其应用到另一个分支?

pri*_*ing 25 git branch

我有两个主要的分支,每个分支用于不同的功能,然后我有一个综合分支,将两者结合起来.我向合成分支提交了一些内容,但现在我发现我宁愿将该更改应用于该特性的一个特定分支.有没有办法做这个unapply /适用于git的其他地方机动?

P S*_*ved 36

Cherry-pick提交目标分支和重置源分支.假设您要将最新的提交从source分支移动到target,执行:

git checkout target
git cherry-pick source
git checkout source
git reset --hard source^
Run Code Online (Sandbox Code Playgroud)

如果提交不是最后一个,则必须使用git rebase -i而不是最后一个命令并为您选择特定的提交名称cherry-pick.

  • 请注意,重置/ rebase都执行**历史重写**,因此如果历史记录已发布则不应使用它们 - 那么您将不得不使用git-revert. (8认同)