2011-03-22 2 views
0

Это немного странно, так что у меня эта строчка в моем удаленном мерзавце крючков репо скрипте после приема:нечетного выполнения крюка сценарий на мерзавце

cd /path/to/my/deployed/app 
git reset --hard 
rm files/.development 

И из моей локальной машины я толчок к моему мерзавца репо - вот что странно. Те линии, которые находятся в конце моего post-receive, выполняются на моем локальном компьютере, а не на моем удаленном сервере?

Очевидно, что я в конечном итоге получаю эту ошибку:

MacBook-Air:$ git push to-my-deployed-app 

Counting objects: 23, done. 
Delta compression using up to 2 threads. 
Compressing objects: 100% (16/16), done. 
Writing objects: 100% (16/16), 2.56 KiB, done. 
Total 16 (delta 11), reused 0 (delta 0) 
remote: warning: updating the current branch 
remote: fatal: Not a git repository: '.' 
remote: rm: cannot remove `files/.development': No such file or directory 

Так что .. очень странно ...

+0

Если вы нажимаете на не-голый репозиторий и пытаетесь использовать этот крюк для обновления рабочего дерева после нажатия, вам следует рассмотреть сценарий 'post-update', связанный в [« Почему бы мне не увидеть изменения в удаленном репо после «git push»? »(https://git.wiki.kernel.org/index.php/GitFaq#Why_won.27t_I_see_changes_in_the_remote_repo_after_.22git_push.22.3F) Git FAQ. Он обрабатывает грязные рабочие деревья путем сложения перед сбросом (так что у вас есть хотя бы возможность восстановить любые изменения, сделанные непосредственно на сервере (вне Git)). –

+0

спасибо за помощь. хотя мне не нужно беспокоиться о том, что на нашем сервере грязное дерево, так как в нем нет реинжинированных репо, но все просто подталкивают к этому живому репо. я просто хочу, чтобы мой скрипт запуска выполнялся правильно - обновление рабочего дерева. см. ниже мой последний комментарий для Марка. благодаря! – David

ответ

4

Почему вы думаете, что это время работать на местном уровне? Префикс remote: перед каждой ошибкой указывает, что он пришел с пульта. Из этих ошибок кажется, что путь к вашему репозиторию неверен. На самом деле вам не нужно менять каталог, если вы пытаетесь запустить git reset --hard в репозитории, в котором находится хук, - текущий рабочий каталог для hook будет в любом случае верхним уровнем этого репозитория.

+0

Хмм, что имеет смысл, не должно быть cd'ing в каталог, но, тем не менее, не знаете, почему компакт-диск для моего приложения не так ошибочен, так как если – David

+0

@David: трудно кому-либо здесь угадать, так как ясно '/ path/to/my/deployed/app' не является реальным путем на вашем сервере, и мы все равно не можем видеть, что находится в реальном каталоге ... –

+0

привет благодарю за помощь - я думаю, что я продвигаюсь, но все же маленький фанки. поэтому я удалил дополнительный шаг, чтобы изменить путь, и теперь я получаю этот результат: Total 5 (delta 3), reused 0 (delta 0) remote: warning: обновление текущей ветви remote: HEAD теперь находится на 2968db5 малой настройке для метка 'для' атрибута . НО - когда я иду на сервер и редактирую свой файл, моих изменений не было? Что произошло здесь и почему сервер дал это сообщение, но копия файлов/рабочих мест не была обновлена? – David

Смежные вопросы