如果在 git 提交之前在另一个分支上,则自动创建分支
Auto-create branch if on another branch prior to committing with git
我有一个分支,假设 master
。我没有 master
推送限制。有没有办法让它说,如果在 master
分支(或另一个分支)上不小心进行了提交,那么会自动创建一个新分支并且提交在那里?
示例工作流程:
- 克隆存储库
master
分支。
- 做了很多改变
- 是否
git commit -am ...
如果此人正在提交 master
(或其他 "marked" 分支),我想连接到 #3 并创建一个新分支。
如果不可能,是否只是在 master
处阻止提交?
我可以通过创建一个 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
;它按预期工作。
我有一个分支,假设 master
。我没有 master
推送限制。有没有办法让它说,如果在 master
分支(或另一个分支)上不小心进行了提交,那么会自动创建一个新分支并且提交在那里?
示例工作流程:
- 克隆存储库
master
分支。 - 做了很多改变
- 是否
git commit -am ...
如果此人正在提交 master
(或其他 "marked" 分支),我想连接到 #3 并创建一个新分支。
如果不可能,是否只是在 master
处阻止提交?
我可以通过创建一个 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
;它按预期工作。