如何在合并请求中删除其他人的提交

我现在遇到一个问题,当我拉一个远程分支。

一旦我解决了所有冲突的情况下,我必须承诺所有的变化。

所以一旦我创建合并请求,它包括所有这些。
因此很难审查。 我只想现在只有我的承诺。

您如何解决这些冲突以便更容易地审查合并请求?

我得到了更多的问题如下:

假设我有2个分支: A has commits (a, b) B has commits (c, d) 。 我也创建了合并请求(MR)( MR-AMR-B )来master 。 所以MR-A has (a, b)MR-B has (c, d)在内部提交。 但是如果我在A分支,那么我重新分支B这样MR-A has (a, b, c, d)提交,而MR-B also has (c, d) 。 最后,我将MR-A合并master 。 然而, MR-B still has (c, d)

问题是:我怎样才能从MR-B删除c, d


Rebase是你正在寻找的东西,而不是合并。

读:
你什么时候使用git rebase而不是git merge?
'git merge'和'git rebase'有什么区别?


如果你只pull (不pull --rebase ),那么合并的决议涉及提交(而不是git add + git rebase --continue

这意味着您可以进行一次或多次提交以完全解决在git pull之后检测到的冲突。

所以你需要做的只是一个git add -p ,只添加冲突文件的大块:

  • 首先是不属于你的代码块
  • 那么你的
  • 那样的话,你最终得到单独的提交。 你可以做出更精确的合并请求,更容易审查。

    这对于一个rebase来说很难做到,只有当你修复并向索引添加了冲突的文件时,它才会进行一次提交。


    我怎样才能从MR-B中删除c,d?

    您不需要:您只需删除MRB:如果您在MRB之上重新配置了MRA,然后将MRA合并到master,则MRB不具有任何作用:所有提交都已合并。

    如果MRB有更多的提交,并且你想删除b和c,那么简单地做一个git rebase -i :它将以交互模式重新绑定MRB,允许你放弃提交b和c,并保留其他提交。 强制推送MRB,您可以继续解决问题B.

    链接地址: http://www.djcxy.com/p/45097.html

    上一篇: How to remove commits from other's in merge request

    下一篇: Git rebase circles back to same place again and again