4

.git/hooks/pre-commit にこの pre-commit フックがあります

#!/bin/bash
for file in `git diff --name-only`
do
  if [[ $file =~ /pom\.xml$ ]]; then
    exec < /dev/tty
    read -p "Committing $file is often a mistake; are you sure you want to do that? (Y/[N]): " ans
    exec <&-
    if [[ $ans =~ ^[Yy]$ ]]; then
      echo proceeding rashly with commit...
    else
      echo aborting commit, O prudent one.
      exit 1
    fi
  fi
done

github for mac (GUI クライアント) を使用してコミットすると、次のエラーが表示されます。

.git/hooks/pre-commit: line 5: /dev/tty: Device not configured
aborting commit, O prudent one.
 (1)

コマンドラインで動作します。しかし、GUI クライアントを動作させたいと思っています。何か案は?ありがとう!

4

1 に答える 1

1

GUIクライアントは、フック中にユーザーから入力を取得するttyまたはその他の方法を提供しません。したがって、これは不可能です。この問題には 2 つの解決策があります。

  • コミットをパスさせ、警告を出力します。前の状態に戻すのは簡単git reset HEAD^です。
  • git config オプションを使用して、チェックを切り替えるか、有効な pom ファイルのリストを構成します。
于 2013-07-29T18:47:43.530 に答える