我在GitHub上托管了一个仓库,它有几个分支。如何设置主存储库的配置以设置receive.denyNonFastForwards标志,使主存储库只能接受快进推送,而拒绝任何非快进推送,即使它们是--forced
receive.denyNonFastForwards
--forced
o4tp2gmn1#
GitHub不公开此功能,但有两个选项:
post-receive
e0bqpujr2#
Github企业版现在有一个disabling force pushes的特性,对于那些没有使用企业版的用户,你可以使用configure a pre-push hook。这是一个很好的做法,从来没有强迫推动掌握,除非绝对必要。
agxfikkp3#
您可以使用ssh连接通过另一个集线器(如sourceforge.net)完成此操作。只要把它作为github.com的镜像,并不时同步即可。X1 M2 N1 X的一个更先进的功能是,你可以使用动态密码(2因子),而不需要外部连接。你可以只安装谷歌X1 M3 N1 X手机应用程序,并设置由集线器给出的私钥,然后你可以在没有任何外部连接(没有互联网或短信)的情况下使用密码的动态部分进行身份验证。
sourceforge.net
github.com
优点
sf.net
master
master-<id>
receive.denyDeleteCurrent
3条答案
按热度按时间o4tp2gmn1#
GitHub不公开此功能,但有两个选项:
receive.denyNonFastForwards
的地方,并让每个人推送。镜像可以通过post-receive
钩子来完成。两个都用的原因是为了在两个仓库之间获得最小的时间延迟,并且即使post-receive
钩子更新GitHub失败(例如,如果GitHub关闭),仍然确保所有内容都是最新的。e0bqpujr2#
Github企业版现在有一个disabling force pushes的特性,对于那些没有使用企业版的用户,你可以使用configure a pre-push hook。
这是一个很好的做法,从来没有强迫推动掌握,除非绝对必要。
agxfikkp3#
您可以使用ssh连接通过另一个集线器(如
sourceforge.net
)完成此操作。只要把它作为
github.com
的镜像,并不时同步即可。X1 M2 N1 X的一个更先进的功能是,你可以使用动态密码(2因子),而不需要外部连接。你可以只安装谷歌X1 M3 N1 X手机应用程序,并设置由集线器给出的私钥,然后你可以在没有任何外部连接(没有互联网或短信)的情况下使用密码的动态部分进行身份验证。
优点
github.com
之外有一个备份,并且可以比较推送重写之前和之后的2个存储库。sf.net
存储库中打开和关闭receive.denyNonFastForwards
标志,方法是将本地master
分支推送到一个新的远程分支(例如master-<id>
),然后将它与之前同步的master-<id>
进行比较,这样可以完全避免合并,因为git新建/删除分支是一个代价很低的操作。但是,由于receive.denyDeleteCurrent
变量上的当前分支保护,您无法轻松删除sf.net
中的当前分支,因此这会导致当前主分支处于休眠状态。缺点
github.com
上的每个这样的存储库分配sf.net
上的存储库,并控制同步。但是仍然有一个优点-receive.denyNonFastForwards
标记默认为sf.net
上的所有新存储库打开。