什么是一个好方法,可以将作者在一个分支中的所有遗漏提交到另一个分支

时间:2014-05-09 17:11:22

标签: git git-cherry-pick

说我在主人身上做了很多改变。但是,我想要挑选所有不在分支中的人:发布-5到它。

2 个答案:

答案 0 :(得分:2)

挑选樱桃的关键在于您可以选择要复制到分支的特定提交子集。它明确存在因为在某些情况下您不希望使用合并来集成来自另一个分支的所有提交。

现在,如果你发现自己处于想要挑选所有其他分支上的提交的情况,那么你正处于合并的情况,你只想合并分支到当前分支以集成所有更改:

git checkout release-5
git merge master

话虽如此,A..B修订版范围语法允许您指定可从B到达的提交,而不能从A访问这些提交。因此,在您的情况下,您希望使用release-5..master选择master上但无法从release-5分支到达的所有提交:

git cherry-pick release-5..master

但是,如果你只想要所有这些,合并绝对是更好的选择,因为它不会复制提交并保持实际的历史记录。

答案 1 :(得分:2)

你可以挑选,但如果你改变它会更容易:

git checkout -b missing-commits master
git rebase -i --author=me release-5

已经在第5版中发布的所有提交都不会被选中,只有你的提交才会被提取。之后,您可以将分支missing-commits合并到release-5。

据说你可以使用樱桃挑选:

git cherry-pick --skip-empty --cherry-pick --no-merges --right-only --topo-order --do-walk master...release-5

正如您所看到的那样git rebase更容易使用,它可以为您精心挑选。