Я использую OSX 10.6.5 с Git 1.7.1
У меня git установлен в нестандартном месте (хотя это действительно должно быть стандартом для Mac ;-) в /Library/Frameworks/Git.framework. Мой собственный PATH настроен нормально, git работает нормально, пока ... я не установил хук предварительной фиксации с помощью скрипта Ruby:
$ git commit -m "added some Yard documentation"
.git/hooks/pre-commit: line 1: #!/usr/bin/env: No such file or directory
Pre-commit.sample работает нормально, поэтому кажется, что git не может найти / usr / bin / env или что-то еще, поскольку я пробовал передать его напрямую на ruby и т. Д. Просто / bin / sh в порядке.
Итак, откуда Git берет его PATH? потому что он не использует мой, иначе этого бы не произошло. И, что ближе к делу, как мне заставить его видеть / usr / bin / env?
Я уже тестировал скрипт ruby, он работает.
Просто добавлю:
$ cat /etc/paths
/usr/bin
/bin
/usr/sbin
/sbin
/usr/local/bin
$ cat /etc/paths.d/git
/Library/Frameworks/Git.framework/Programs
Первые несколько строк скрипта Ruby (который запускается через ./pre-commit или ruby pre-commit)
#!/usr/bin/env ruby -wKU
class String
def expand_path
File.expand_path self
end
def parent_dir
File.dirname self.expand_path
end
end
Файл был каким-то образом поврежден с того момента, как я скопировал его в .git / hooks, новый файл с тем же кодом исправил его. Большое спасибо @Redmumba и @Dennis Williamson за то, что сообщили мне, что я искал не в том месте.