有没有办法configurationgit存储库来拒绝'git push –force'?
我想知道是否有一种方法来防止“ git push --force
”在存储库(只在主分支)?
假设我有远程git存储库,并执行:
- '
git push
'。 有用。 - '
git push --force
'到'branch-1'。 有用。 - '
git push --force
'改为'master'。 它被拒绝。
这甚至有可能吗?
感谢您的任何答案和build议。
BR,Dawid。
设置configurationvariables:
receive.denyNonFastForwards receive.denyDeletes
将阻止任何“强迫”推动在所有分支机构工作。
如果你想要更好的预分支控制,那么你将不得不在远程仓库上使用'hook',可能是'update'钩子。
有一个叫做'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