хук post-receive терпит неудачу "не может использоваться без рабочего дерева" - PullRequest
0 голосов
/ 05 октября 2011

Я использовал эту настройку Git для управления сайтом: http://toroid.org/ams/git-website-howto.

Вещи работают, пока я не активирую ловушку пост-получения. Прежде чем активировать его, я могу толкать и тянуть без проблем. Однако, если я активирую крючок, он говорит:

fatal: /usr/bin/git-checkout cannot be used without a working tree.
error: hooks/post-receive exited with error code 1

Он по-прежнему тянет правильно, но не копирует файлы, как положено (в корневой корень). Но хук после получения гласит:

#!/bin/sh
GIT_WORK_TREE=/home/domains/mydomain/html/ git checkout -f

Так почему Git жалуется на отсутствие рабочего дерева? Тот же синтаксис работал для других сайтов.

1 Ответ

2 голосов
/ 05 октября 2011

Вы, вероятно, должны использовать git archive вместо git checkout для того, что, по-видимому, вы пытаетесь сделать здесь (с помощью ловушки экспортировать файлы в корневой каталог документов веб-сервера).

git archive HEAD | tar -xC /home/domains/mydomain/html/

Одним из преимуществ, которое это дает, является возможность не экспортировать определенные файлы из хранилища (используя флаг .gitattributes export-ignore).

...