Ana*_*shi 11 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
Run Code Online (Sandbox Code Playgroud)
我尝试直接通过命令提示符运行预提交代码,它没有任何错误,但当我尝试通过git bash提交代码时,我得到此错误
fatal: Not a git repository: '.git'
Run Code Online (Sandbox Code Playgroud)
我假设它是因为预提交文件中使用的git命令,任何人都可以告诉我这个文件中有什么错误以及我应该如何修改它
有疑问,在你的钩子中,明确设置git-dir
和work-tree
参数:
git --git-dir .git --work-tree . add ...
Run Code Online (Sandbox Code Playgroud)
你甚至可以把完整的路径放在一边:
git --git-dir D:/xampp/htdocs/app/application/.git --work-tree D:/xampp/htdocs/app/application/. add ...
Run Code Online (Sandbox Code Playgroud)
这样,你可以排除任何环境问题,git-dir
或者work-tree
进入另一条路径,而这条路径不是你正在进行的回购之一.
有关该问题的示例,请参阅" 从钩子中调用"git pull
git post-update
.