有没有办法配置git存储库来拒绝'git push
我想知道是否有一种方法可以阻止存储库上的' git push --force
'(仅在master分支上)?
假设我有远程git存储库,并执行:
git push
'到'主'。 有用。 git push --force
'到'branch-1'。 有用。 git push --force
'改为'master'。 它被拒绝。 它甚至有可能吗?
感谢您的任何答案和建议。
BR,Dawid。
设置配置变量:
receive.denyNonFastForwards
receive.denyDeletes
将阻止任何“强迫”推动在所有分支机构工作。
如果你想要更精细的预分支控制,那么你将不得不在远程仓库上使用'钩子',可能是'更新'钩子。
有一个叫做'update-paranoid'的示例更新钩子,可能会在'contrib'文件夹中的git分发中满足你需要的(以及更多)。
gitweb链接
我编写了这个快速更新钩子来防止存储库中“dev”分支上的非快进更新(推送):
#!/bin/sh
REFNAME=$1
OLDSHA=$2
NEWSHA=$3
if [ "refs/heads/dev" != $REFNAME ]; then
exit 0
fi
MERGEBASE=$(git merge-base $OLDSHA $NEWSHA)
if [ $OLDSHA = $MERGEBASE ]; then
exit 0
fi
echo "Not a fast-forward on branch dev"
exit 1
Github已经引入了受保护分支的概念!
它可以在Settings -> Branches -> Protected Branches
。 功能现在适用于所有用户 - 不仅是企业!
可以为任何分支和任何用户(包括管理员)启用此“保护”。
更多细节在这里 - https://help.github.com/articles/defining-the-mergeability-of-pull-requests/
因此不再需要钩子和任意代码。
链接地址: http://www.djcxy.com/p/49231.html上一篇: Is there a way to configure git repository to reject 'git push