将分支A与另一个分支B合并时,如何从B中排除某些提交以进行合并?
例如,B有100个提交,如何合并特定的98提交并排除2?
答案 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