4

我在 .git/hooks/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 或任何其他在挂钩期间从用户获取输入的方式。所以这是不可能的。我看到这个问题的两种解决方案:

  • 让提交通过并输出警告。回到之前的状态很简单git reset HEAD^
  • 使用 git config 选项切换检查或配置有效 pom 文件列表。
于 2013-07-29T18:47:43.530 回答