ловушка после получения в Windows - GIT_WORK_DIR: такого файла или каталога нет - PullRequest
6 голосов
/ 19 ноября 2011

Я пытаюсь настроить мой приемный прием на git (windows). Вот скрипт:

#!/bin/sh
echo "post-receive hook"
GIT_WORK_TREE=/d/test git checkout -f

Когда я выполняю git push в своем локальном репозитории, я вижу это эхо-сообщение, скрипт вызывается правильно.

Но проверка не запускается! В представлении консоли произошла ошибка:

remote: fatal: Could not switch to '/d': No such file or directory

Но когда я помещаю эту команду в Git Bash, она работает!

Ответы [ 2 ]

2 голосов
/ 21 ноября 2011

Из комментариев:

GIT_WORK_TREE=/Volumes/D/test git checkout -f

работает.

Тем не менее, OP RobertM комментарии:

Что если я сделаюнажать с другого компьютера?У меня есть другой клон на моей машине с Windows, где этот путь недоступен

Это другая проблема, которую можно решить, например, с помощью соглашения об именовании дисков: можно решить связать любой путь с удаленнымrepo - это (d:\test или любой другой путь) к определенной букве диска (например, X:) с помощью команды Windows subst .

0 голосов
/ 14 мая 2015

У меня запущен mysysgit на веб-сервере, на который я отправляю свою локальную рабочую станцию, и использую следующий сценарий пост-получения:

#!/bin/sh
git --work-tree=/cygdrive/d/www --git-dir=/cygdrive/d/CodeRepositories/tempRepo.git checkout -f

Вначале меня озадачило то, что файл не находился вФормат UNIX, вы можете использовать Notepad ++, чтобы изменить его.Обратите внимание, что я использую cygwin для выполнения SSH, поэтому, возможно, потребуется изменить имена каталогов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...