post-receive
Gitリポジトリ内に、リポジトリを別のディレクトリに複製してからそのディレクトリに複製するフックがありますcd
。
#!/bin/bash --login
GIT_REPO="$HOME/oliverjash.me.git"
source "$HOME/.bash_profile"
checkout () {
BRANCH="$1"
TMP_GIT_CLONE="$2"
git clone $GIT_REPO $TMP_GIT_CLONE
cd $TMP_GIT_CLONE
git status
}
checkout master "$HOME/tmp/oliverjash.me"
checkout project "$HOME/tmp/project.oliverjash.me"
exit
SSHにログインしているときにこのスクリプトを実行すると、正常に動作しますgit status
。ただし、スクリプトがpost-receive
フックとして実行されると、次のようにgit status
報告されます。
remote: fatal: Not a git repository: '.'
なんでこんなのかわからない!