任何人都可以解释为什么我的团队成员在提交此 git reset 命令后无法将更改推送到 master 分支(更改将使 repo 恢复几次提交):
git reset --hard (previous commit SHA)
Run Code Online (Sandbox Code Playgroud)
这是尝试 git push 后收到的错误:
! [rejected] master -> master (non-fast-forward)
error: failed to push some refs to 'git@xxxxx.com:xxx/xxxx.git'
hint: Updates were rejected because the tip of your current branch is behind
hint: its remote counterpart. Integrate the remote changes (e.g.
hint: 'git pull ...') before pushing again.
hint: See the 'Note about fast-forwards' in 'git push --help' for details.
Run Code Online (Sandbox Code Playgroud)
分支 master 受到保护,因此只有“开发人员 + 维护人员”可以推送到它。
我的队友是有问题的 Gitlab 组的成员,拥有“开发人员”权限,之前推送到远程仓库没有问题。我有维护者权限,也无法推送到受保护的分支并收到相同的错误。
为了解决这个问题,我删除了分支保护,他能够强制推送更改(git push -f)。有谁知道为什么这个操作在受保护的分支上失败?
Alb*_*rto 18
您可以尝试允许从 github 存储库“设置”强制推送/删除
repository => settings => branches => add rules
正如您所发现的,您不能强制推送到 GitLab 上的受保护分支。
来自GitLab 文档:
默认情况下,受保护分支会做四件简单的事情:
- 它可以防止任何人强行推向分支。
所以你的解决方法是这里的解决方案:unprotect-> force-push->protect
更新
GitLab 添加了新设置以启用强制推送到受保护:
- 导航到您的项目的
Settings>Repository。- 展开
Protected branches,然后滚动到Protect a branch。- 要允许所有具有推送访问权限的用户强制推送,请切换
Allow force push滑块。
GitLab 现在支持强制推送到GitLab.com上的受保护分支。
在自我管理的实例上,管理员可以选择禁用它,因此您需要与您的管理员核对。在此处
查看更多详细信息
| 归档时间: |
|
| 查看次数: |
3191 次 |
| 最近记录: |