首页 > 解决方案 > Gitlab推力被拒绝

问题描述

最近几天我加入了一个项目。该项目的所有者向他以前的开发人员询问了一项功能,由于他不高兴,他要求我做同样的事情。

该项目在GitLab上维护,之前的开发人员在我之前将他的新更改推送到 master 分支,现在当我要推送我的更改时,它被远程服务器(GITLAB 服务器)拒绝。

根据 gitlab文档,没有push force选项可用于受保护分支上的任何角色,特别是 master 上的任何角色(可以关闭)。

我想知道我是否没有其他选项可以关闭主分支上的保护,然后强制推送我的更改,还是有更好的选择?

我问这个是因为我和其他开发人员都在使用相同的功能,并且可能合并我们的更改可能会导致不可预测的结果(我不确定)。

标签: gitgitlabgit-push

解决方案


另一种方法是还原其他开发人员的更改,然后在该还原之上应用您的更改。

从主分支开始并创建新分支:

$ git checkout -b branch_to_push

然后,从该分支恢复功能的“错误”实现。如果是单次提交:

$ git revert <commit-hash>

如果它由多个提交组成:

$ git revert '<commit-hash-earliest>^1..<commit-hash-latest>'

从您的分支中挑选您的实施:

$ git cherry-pick feature_branch

然后将这个分支推送到 GitLab 中进行审查:

$ git push origin branch_to_push

推荐阅读