自動將某些推送轉發到其他儲存庫

post-receive hooks 可用於自動將傳入推送轉發到另一個儲存庫。

$ cat .git/hooks/post-receive

#!/bin/bash

IFS=' '
while read local_ref local_sha remote_ref remote_sha
do

  echo "$remote_ref" | egrep '^refs\/heads\/[A-Z]+-[0-9]+$' >/dev/null && {
    ref=`echo $remote_ref | sed -e 's/^refs\/heads\///'`
    echo Forwarding feature branch to other repository: $ref
    git push -q --force other_repos $ref
  }

done

在此示例中,egrep regexp 查詢特定的分支格式(此處:JIRA-12345 用於命名 Jira 問題)。當然,如果要轉發所有分支,可以將此部分保留。