致命:不是git存储库:'。git'错误

时间:2012-08-11 13:02:45

标签: git hook git-bash

我创建了一个预提交挂钩,它接受数据库转储并将其保存在我的应用程序/文件夹下的文件中,该文件也在git repo中,保存后我将文件添加到提交列表中。以下是我的预提交文件中的代码

    D:/xampp/mysql/bin/mysqldump -u root -pxyz --skip-extended-insert [database] > D:/xampp/htdocs/app/application/[database].sql

cd D:/xampp/htdocs/app/application
git add [database].sql

我尝试直接通过命令提示符运行预提交代码,它没有任何错误但是当我尝试通过git bash提交代码时出现此错误

fatal: Not a git repository: '.git' 

我假设它是因为预提交文件中使用的git命令,任何人都可以告诉我这个文件中有什么错误以及我应该如何修改它

3 个答案:

答案 0 :(得分:9)

有疑问,在您的钩子中,明确设置git-dirwork-tree参数:

git --git-dir .git --work-tree . add ...

你甚至可以把完整的路径放在一边:

git --git-dir D:/xampp/htdocs/app/application/.git --work-tree D:/xampp/htdocs/app/application/. add ...

通过这种方式,您可以排除那些git-dirwork-tree陷入另一条路径的环境问题,而这条路径不是您正在进行的回购协议之一。
有关该问题的示例,请参阅“Calling 'git pull' from a git post-update hook”。

答案 1 :(得分:1)

我和你一样有同样的问题并找到了这个解决方案:

而不是

cd D:/xampp/htdocs/app/application
git add [database].sql

我只是做了

git add D:/xampp/htdocs/app/application/[database].sql

这样我就不会因为进入另一个文件夹而激怒git:)

答案 2 :(得分:0)

确保您在目录中有.git文件夹? 确保,尝试运行

git status

看看会发生什么。如果你仍然收到这样的消息,我认为你的git尚未建立。

按照以下步骤进行设置:

git init
git add .
git commit -m "your message"
git push