我有一个分支,让我们说master
。我没有限制master
推送。有没有办法让它说如果在master
分支(或另一个分支)上意外地完成了一个提交,那么自动创建一个新分支并且提交在那里?
示例工作流程:
master
分支。git commit -am ...
如果此人正在master
(或其他一些"标记为"分支),我想挂钩#3并创建一个新分支。
如果不可能,是否只会在master
阻止提交?
答案 0 :(得分:1)
我能够通过创建pre-commit
钩子来实现这一点:
#!/bin/bash
PROTECTEDBRANCH="master"
CURRENTBRANCH=$(git rev-parse --abbrev-ref HEAD)
if [ "$PROTECTEDBRANCH" == "$CURRENTBRANCH" ]; then
RANDOMBRANCH=$(cat /dev/urandom | tr -dc 'a-zA-Z0-9' | fold -w 8 | head -n 1)
git checkout -b $RANDOMBRANCH
fi
我将其保存在.git/hooks/pre-commit
;它按预期工作。