如何在合并请求中删除其他人的提交
How to remove commits from other's in merge request
我现在拉远程分支的时候遇到了问题。
一旦我解决了所有冲突的情况,我必须提交他们的所有更改。
因此,一旦我创建合并请求,它就会包含所有这些请求。
因此很难复习。我现在只想提交我的内容。
您将如何解决这些冲突以使合并请求更易于审查?
我有更多问题如下:
假设我有 2 个分支:A has commits (a, b)
B has commits (c, d)
。我还创建了合并请求 (MR)(MR-A
、MR-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 是您要查找的内容,而不是合并。
阅读:
When do you use git rebase instead of git merge?
What's the difference between 'git merge' and 'git rebase'?
如果您只 pull
(不是 pull --rebase
),那么合并的解决涉及提交(而不是 git add
+ git rebase --continue
)
这意味着您可以进行一次或 多次 提交以完全解决在 git 拉取后检测到的冲突。
所以您需要做的就是 git add -p
,只添加大量冲突文件:
- 首先是不属于您的大量代码
- 然后是你的
这样,您最终会得到 单独的 提交。而且你可以提出更精确的合并请求,更容易审查。
这对于 rebase 来说更难做到,一旦你修复了有冲突的文件并将其添加到索引中,它只会进行一次提交。
How could I remove the c, d from MR-B?
你不需要:你只需删除 MRB:如果你在 MRB 之上重新设置了 MRA,然后将 MRA 合并到 master,MRB 没有任何作用:它的所有提交都已合并。
如果 MRB 有更多提交,并且你想删除 b 和 c,只需执行 git rebase -i
:这将在交互模式下重新设置 MRB 的基线,允许你删除提交 b 和 c,保留其他提交。强制推送 MRB,您可以继续修复 B。
我现在拉远程分支的时候遇到了问题。
一旦我解决了所有冲突的情况,我必须提交他们的所有更改。
因此,一旦我创建合并请求,它就会包含所有这些请求。
因此很难复习。我现在只想提交我的内容。
您将如何解决这些冲突以使合并请求更易于审查?
我有更多问题如下:
假设我有 2 个分支:A has commits (a, b)
B has commits (c, d)
。我还创建了合并请求 (MR)(MR-A
、MR-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 是您要查找的内容,而不是合并。
阅读:
When do you use git rebase instead of git merge?
What's the difference between 'git merge' and 'git rebase'?
如果您只 pull
(不是 pull --rebase
),那么合并的解决涉及提交(而不是 git add
+ git rebase --continue
)
这意味着您可以进行一次或 多次 提交以完全解决在 git 拉取后检测到的冲突。
所以您需要做的就是 git add -p
,只添加大量冲突文件:
- 首先是不属于您的大量代码
- 然后是你的
这样,您最终会得到 单独的 提交。而且你可以提出更精确的合并请求,更容易审查。
这对于 rebase 来说更难做到,一旦你修复了有冲突的文件并将其添加到索引中,它只会进行一次提交。
How could I remove the c, d from MR-B?
你不需要:你只需删除 MRB:如果你在 MRB 之上重新设置了 MRA,然后将 MRA 合并到 master,MRB 没有任何作用:它的所有提交都已合并。
如果 MRB 有更多提交,并且你想删除 b 和 c,只需执行 git rebase -i
:这将在交互模式下重新设置 MRB 的基线,允许你删除提交 b 和 c,保留其他提交。强制推送 MRB,您可以继续修复 B。