git diff during pre-commit hook results in Not a git repository

六月ゝ 毕业季﹏ 提交于 2019-11-30 17:50:05

问题


I'm trying to build a pre-commit script in git. In that script I plan on running tasks if a certain folder has changed. To test, in my script I have

git diff --cached | grep -q "^my/folder"

This results in...

Not a git repository
To compare two paths outside a working tree:
usage: git diff [--no-index] <path> <path>

pwd says I'm in the correct directory and $GIT_DIR is .git. I was lead to belive that --cached was the special sauce to get this working in a hook. Is there a way to do this?


回答1:


Even though GIT_DIR is set, I would still try a:

git --git-dir=/full/path/to/repo/.git --work-tree=/full/path/to/rpeo diff --cached |grep -q "^my/folder" 

That way, you are sure the hook is executed where it is supposed to.




回答2:


unset GIT_DIR cleared it up. I'm disappointed that --git-dir did not.



来源:https://stackoverflow.com/questions/20435593/git-diff-during-pre-commit-hook-results-in-not-a-git-repository

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!