最近几天我加入了一个项目。该项目的所有者向他以前的开发人员询问了一项功能,由于他不满意,他要求我做同样的事情。
该项目保留在 GitLab 上,以前的开发人员将他的新更改推送到了我之前的master分支上,现在,当我要推送更改时,它被远程服务器(GITLAB服务器)拒绝)。
根据gitlab documentation,在git lab存储库上没有push force
选项,特别是针对master上受保护分支上的任何角色(可以关闭)。
我想知道是否没有其他选择可以关闭主分支上的保护,然后强行推送更改,或者有更好的选择?
我之所以这样问,是因为我和其他开发人员都在使用相同的功能,并且可能将更改合并可能导致无法预测的结果(我不确定)。
答案 0 :(得分:2)
另一种方法是还原其他开发人员的更改,然后在该还原的基础上应用您的更改。
从master分支开始并创建新分支:
$ 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