Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
git挂钩&x2014;防止提交进入主题分支_Git_Version Control_Githooks - Fatal编程技术网

git挂钩&x2014;防止提交进入主题分支

git挂钩&x2014;防止提交进入主题分支,git,version-control,githooks,Git,Version Control,Githooks,如果消息格式不正确,我需要停止提交 我知道可以使用预接收挂钩在主分支上执行此操作 问题是我不想在master分支上这样做,而是在主题1中这样做 我想用git-symbolic-ref来做这件事 假设我有一个主题分支,名为dev,来自master。如果在主题分支的git命令行中运行'git symbolic ref HEAD',则会得到'refs/heads/dev' 我正在考虑在预接收钩子中执行同样的操作,以检测提交来自哪个分支 我已经把这段代码放到钩子里了: #! /usr/bin/perl

如果消息格式不正确,我需要停止提交

我知道可以使用预接收挂钩在主分支上执行此操作

问题是我不想在master分支上这样做,而是在主题1中这样做

我想用git-symbolic-ref来做这件事

假设我有一个主题分支,名为dev,来自master。如果在主题分支的git命令行中运行'git symbolic ref HEAD',则会得到'refs/heads/dev'

我正在考虑在预接收钩子中执行同样的操作,以检测提交来自哪个分支

我已经把这段代码放到钩子里了:

#! /usr/bin/perl

my $branch = `git symbolic-ref HEAD`;
print "Branch: $branch \n";
但是当我从主题分支提交和推送时(即:dev),我得到的信息是:

Branch: refs/heads/master
…即使提交来自dev分支


我做错了什么?这是实现我的目标的可行方法吗?

无论分支如何,每次推送之前都会执行
预接收
钩子。你的意思是你实现了一个过滤器,所以它只在主分支更新上执行?我需要编辑这个问题,因为它有点混乱。我希望现在更清楚。实际上,我需要在更新的分支不是主分支时运行某些命令。