Фатальный: не репозиторий git: ошибка ".git"
Я создал крюк pre-commit, который берет дамп базы данных и сохраняет его в файле в моем приложении/папке, который также находится в репозитории git, после его сохранения я добавляю файл в список фиксации. Ниже приведен код в файле pre-commit
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
Я попытался запустить код pre-commit прямо через командную строку, он работает без какой-либо ошибки, но когда я пытаюсь выполнить код через git bash, я получаю эту ошибку
fatal: Not a git repository: '.git'
Я принимаю его из-за команды git, используемой в файле предварительной фиксации, может ли кто-нибудь сказать мне, что не так в этом файле, и как я должен его изменить?
Ответы
Ответ 1
В сомнении, в вашем крюке, задайте явно git-dir
и work-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-dir
или work-tree
, застрявшими в другом пути, который не является одним из репо, к которому вы клонируете.
См. " "git pull
" с помощью git post-update
hook" для примера этой проблемы.
Ответ 2
У меня была такая же проблема, как и вы, и нашел это решение:
вместо выполнения
cd D:/xampp/htdocs/app/application
git add [database].sql
i просто сделал
git add D:/xampp/htdocs/app/application/[database].sql
таким образом я не раздражал git cd-ing в другую папку:)
Ответ 3
Убедитесь, что вы находитесь в каталоге, в котором есть .git-папка?
чтобы убедиться, попробуйте запустить
git status
и посмотрим, что произойдет. если вы все еще получите такое сообщение, я думаю, что ваш git еще не настроен.
выполните следующие шаги для его настройки:
git init
git add .
git commit -m "your message"
git push