V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
earther01
V2EX  ›  问与答

大佬们,怎么用技术手段限制 git push --force ,避免覆盖别人的提交?

  •  
  •   earther01 · 2018-05-24 19:46:02 +08:00 · 6459 次点击
    这是一个创建于 2371 天前的主题,其中的信息可能已经有所发展或是发生改变。
    今天快要被这个问题搞死了,只要加上--force 就能强制覆盖远程仓库,导致别人的提交消失的无影无踪,从提交记录上还很难查到是谁进行了强制覆盖。
    大佬们,有没有什么办法能禁止强制提交呢?
    8 条回复    2018-05-25 00:39:55 +08:00
    Xbluer
        1
    Xbluer  
       2018-05-24 19:50:58 +08:00 via iPhone
    服务器端控制啊,gitlab 使用分支保护功能。
    elgae
        2
    elgae  
       2018-05-24 19:55:53 +08:00 via Android
    gerrit
    earther01
        3
    earther01  
    OP
       2018-05-24 20:11:31 +08:00 via iPhone
    @Xbluer gitlab 的分支保护功能好像没办法禁止 push -f 而开放普通 push,有什么特别的配置方法么
    azh7138m
        4
    azh7138m  
       2018-05-24 20:16:50 +08:00 via Android   ❤️ 1
    CFO
        5
    CFO  
       2018-05-24 20:42:13 +08:00 via Android
    做分支保护 必须发起 pull request 才能合并
    Jakesoft
        6
    Jakesoft  
       2018-05-24 21:03:26 +08:00 via iPhone
    @earther01 有的 admin 可以关掉
    msg7086
        7
    msg7086  
       2018-05-25 00:12:08 +08:00
    @earther01
    By default, protected branches are designed to:
    prevent their creation, if not already created, from everybody except Masters
    prevent pushes from everybody except Masters
    -> prevent anyone from force pushing to the branch
    -> prevent anyone from deleting the branch

    把分支加入保护就可以了。
    你说的开放普通 Push,就是把 Push 权限下放给 Developers。
    如果要禁止普通 Push,把 Push 权限改成 Masters 就行了。

    PS: force push 操作记录上是可以查出来的,某某人删除了多少个提交。
    ShadowStar
        8
    ShadowStar  
       2018-05-25 00:39:55 +08:00
    在远程仓库配置 config:receive.denyNonFastForwards = true
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5459 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 06:55 · PVG 14:55 · LAX 22:55 · JFK 01:55
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.