git 合并请求仅功能分支提交

git merge request only feature branch commits

我会尽力解释我的问题:

  1. 我们的主分支有以下提交:C1、C2、C3
  2. 我从 master 创建了自己的功能分支并推送了一次提交,所以我将拥有:C1、C2、C3、C4
  3. 与此同时,master 分支又进行了一次提交,因此我们有:C1、C2、C3、C5
  4. 我将我的功能分支从主分支变基,我得到:C1、C2、C3、C4、C5

问题是当我创建一个从我的功能分支到主分支的合并请求时,我的合并请求将有两个提交要合并:C4、C5(这里 C5 与主 C5 的散列不同提交)。

我的问题是有没有办法只合并我的提交 C4,因为 C5 已经在 master 分支中了?

您可以将您的分支合并到主分支中,它只会合并您所做的更改,不会合并代码两次。当你这样做时,它可能会显示奇怪的提交,但如果你查看你的更改,你只会将更改列为来自你的第 4 次提交。 (如果我没看错的话。)

master 之上重新设置 feature 应该导致提交顺序:C1, C2, C3, C5, C4

尝试重新运行你的 rebase :

# from your 'feature' branch :
git checkout feature

# rebase on 'master' :
git rebase master

# your 'feature' branch should be rewritten, with commits 1,2,3,5,4
# please add a comment if this is not the case

排序后,推送你的分支(你需要使用 --force),并检查你的合并请求:它应该只提到 C4