将分支与另一个分支合并时如何排除某些提交

时间:2017-08-26 09:30:06

标签: git

将分支A与另一个分支B合并时,如何从B中排除某些提交以进行合并?

例如,B有100个提交,如何合并特定的98提交并排除2?

3 个答案:

答案 0 :(得分:0)

例如,如果您在branchB上,而git add .git commit可以git reset <file name>表示您想要排除的那些,那么当您将branchB合并到branchA时,它将仅包括承诺的98。

答案 1 :(得分:0)

git cherry-pick
可能是您想要的命令。 它可以让你选择你想要的提交。

https://git-scm.com/docs/git-cherry-pick

git cherry-pick [--edit] [-n] [-m parent-number] [-s] [-x] [--ff]
          [-S[]] …​
git cherry-pick --continue
git cherry-pick --quit
git cherry-pick --abort

来自网站的描述提取物

给定一个或多个现有提交,应用每个引入的更改,为每个提交记录一个新提交。这要求您的工作树是干净的(没有HEAD提交的修改)。

答案 2 :(得分:0)

合并后,您可以进行交互基础调整并排除不需要的提交:

git rebase -i HEAD~100

您可能想从源创建一个中间分支,并以-i为基础,然后将其合并到目标分支中。

类似以下内容。

git checkout source
git checkout -b middle
git rebase -i HEAD~100 or commit-ish
git checkout target
git merge middle