使用受保护的分支在本地解决合并请求

时间:2020-03-13 09:56:46

标签: git gitlab branch git-merge

我正在使用Gitlab,并且我的合并请求存在冲突,无法使用在线工具解决。我签出目标分支并解决了冲突,然后...然后呢?

  • 该分支受到保护,因此不允许任何人对其进行推送。
  • Gitlab上没有可用的选项来执行类似的操作。

在这些情况下,正确的“方法”应该是什么?我们是否应该创建另一个分支来解决冲突,然后创建另一个合并请求?还是在寻找解决方案时没有看到命令行/替代项,例如“按解决方案冲突的结果本身不是提交”?

2 个答案:

答案 0 :(得分:2)

我们是否应该创建另一个分支来解决冲突,然后 另一个合并请求?

,我建议您这样做。

1)从目标分支创建新分支
2)将功能分支合并到其中
3)解决冲突,添加冲突,然后提交合并
4)将新分支推送到远程
5)从新分支到目标分支创建一个新的PR

答案 1 :(得分:0)

该分支受到保护,因此不允许任何人对其进行推送。

我假设您的意思是目标分支受保护,而我的回答是基于此的。

为避免在Gitlab中发生合并冲突,我通常选择以下两个选项之一:

  1. 在目标分支上重新部署开发分支,解决重新部署期间的冲突并强制更新分支:
git checkout <development branch>
git rebase <target branch>
# optionally interactive rebase, if I have many commit I like to squash then to avoid solving the same conflicts over and over
# git rebase -i <target branch>
git push -f
  1. 将目标分支合并到本地开发分支并解决冲突,将其推送到gitlab,这样您的MR上就不会出现任何合并冲突。