晴耕雨読

work in the field in fine weather and stay at home reading when it is wet

Gitレポジトリの中にいるか確認する方法

ShellでカレントディレクトリがGitレポジトリの中にいるか確認する方法について

なにか git のコマンドを動かす

とりあえず、なにか git コマンドを実行させてエラーが起きなければ、gitレポジトリ内にいることがわかります。

if git status &>/dev/null; then
  echo "inside repo"
fi

git rev-parse –is-inside-work-tree を使う

ただし、実行速度のことを考えたら git rev-parse を使うのが賢いし、 下手なコメントを書くよりもコードが英語として読みやすいと思います。

if git rev-parse --is-inside-work-tree &>/dev/null; then
  echo "inside repo"
fi

関数にする場合は、次のような感じになる。

function is_inside_repo {
  git rev-parse --is-inside-work-tree &>/dev/null
  return $?
}