Git挂钩以防止从特定分支创建新分支

hoo*_*ter 8 git githooks

我开始玩git hooks,我想创建一个以防止开发人员在特定分支上创建新分支.我们公司目前的流程看起来像这样:

git checkout master
git fetch
git reset --hard origin/master
git checkout -b [branch name]
do awesome things.
Run Code Online (Sandbox Code Playgroud)

但是,偶尔快速移动时,一些开发人员最终会从分段回购中启动这个新分支.这导致悲伤.

所以,我想在开发人员开始创建一个新分支时创建一个钩子来中断,检查他们所在的分支,以及exit 1分支是不是master(或者如果分支名称那么通常只停止操作staging) ,否则允许.

编辑:

当我在此搜索更多内容时,我意识到我想要一个预检出钩子,它似乎不存在.除非有人有更好的想法,否则如果上述情况出现,我将继续在结账后挂钩中打印一个非常大的警告.

Ada*_*ruk 0

我会在受祝福的回购方面抓住这一点。如果开发人员在最新主控之外的提交之外的其他内容上启动了分支,请拒绝该分支的推送。他们可以通过重新调整 master 的基准并再次推送来进行纠正。确保您的错误消息具有足够的描述性,以便他们知道如何纠正他们的情况。

此外,更新你的 master 而不检查它:

git fetch
git push . origin/master:master
Run Code Online (Sandbox Code Playgroud)

然后从最新的 master 创建一个分支:

git checkout -b somecoolfeature master
Run Code Online (Sandbox Code Playgroud)

您甚至不必让本地大师保持最新状态:

git fetch
git checkout -b somecoolfeature origin/master
do awesome stuff :)
Run Code Online (Sandbox Code Playgroud)