3

我试图创建一个 gerrit-hook 来自动推送上游。当更改合并到存储库(例如,开发存储库)中时,我想将其推送到上游(到 QA)以供审查。我试图在 change-merged 钩子中做一些事情:

#!/bin/bash
log=/tmp/`basename $0`.log
echo Running $BASH_SOURCE
set | egrep GIT > $log
env > $log
region=`basename /repos/dev.git .git`
echo region=$region
[ $region == "dev" ] && git push -u ssh://user@host:29418/qa HEAD:refs/for/master 
echo $log
mailx -s $0 my@email.com < $log

*不确定在哪里设置“git remote add upstream ssh://”位,所以我尝试了上述方法。*也是全球性的钩子(不是每个回购)?

4

1 回答 1

2

首先,您应该阅读钩子上提供的文档。其次,钩子不在 git 目录中执行。您需要使用 GIT_DIR 环境变量来访问您的 git 目录。Hooks 是全局的,而不是每个 repo。但是,当然,这并不能阻止您使用 $GIT_DIR/hooks/my_hook 之类的东西创建自己的

于 2013-11-13T04:29:34.223 回答