Ошибка «Файл описания проекта» в git? - PullRequest
11 голосов
/ 14 октября 2008

У меня есть небольшой проект, которым я хочу поделиться с несколькими другими на компьютере, к которому у всех нас есть доступ. Я создал голую копию локального репо с

git clone --bare --no-hardlinks path/to/.git/ repoToShare.git

Затем я переместил repoToShare.git на сервер.

Я могу проверить это со следующим:

git clone ssh://user@address/opt/gitroot/repoToShare.git/ test

Затем я могу увидеть все в локальном репо и сделать коммиты против этого. Когда я пытаюсь отправить изменения обратно на удаленный сервер, я получаю следующую ошибку.

*** Project description file hasn't been set
error: hooks/update exited with error code 1
error: hook declined to update refs/heads/master

Есть идеи?

Ответы [ 6 ]

19 голосов
/ 14 октября 2008

Git устанавливает кучу предварительно сконфигурированных хуков в каталог хуков, из коробки они не выполняются. Если вам случится позволить выполнить их (например, chmod + x), то git попытается запустить их. Конкретная ошибка выскакивает, потому что обновление по умолчанию не запускается. Чтобы исправить, удалите хук обновления по умолчанию.

Помогает ли эта ссылка ? Из текста:

Мой коллега испытал аналогичная проблема здесь, где толчка не было за работой. Вы не могли подтолкнуть к местному или удаленный публичный репозиторий. Он был получение файла описания проекта не была установлена ​​ошибка, выданная .git / Крючки / обновление. Этой ошибки не было происходит для того же проекта на Linux или Windows, и, казалось, происходит только в Windows Vista. От мои исследования крючки / обновления не по по умолчанию выполняется, но в Windows Vista файловые права означали, что это было. Удаление хуков / обновление разрешено эти проблемы.

16 голосов
/ 05 декабря 2008

Удаление хуков / обновлений - это не то, что вы хотите.

Просто измените .git / description на то, что вы хотите - например, «FOOBAR repository» или, если вы француз, «Le depot de FOOBAR».

2 голосов
/ 04 февраля 2009

Я также получил эту ошибку при загрузке из Mac OS X (Git версии 1.6.1, скомпилированной с MacPorts ) в удаленный репозиторий Ubuntu (Git версии 1.5.4.3)

Я добавил имя хранилища в файл .git / description как в локальном, так и в удаленном хранилище, и это исправило его.

1 голос
/ 19 августа 2011

Удаление файла или предотвращение его выполнения кажутся экстремальными решениями. Если вы не хотите добавлять описание проекта, достаточно прокомментировать или удалить строки в хуках / обновлениях, которые блокируют действия push. В моем файле эти строки:

# check for no description
projectdesc=$(sed -e '1q' "$GIT_DIR/description")
if [ -z "$projectdesc" -o "$projectdesc" = "Unnamed repository; edit this file to name it for gitweb." ]; then
       echo "*** Project description file hasn't been set" >&2
       exit 1
fi

Когда я их прокомментировал, все работало нормально.

1 голос
/ 19 июня 2011

chmod -x hooks / update

указанная выше команда, выполненная из вашего каталога .git, удалит только разрешения на выполнение из ловушки обновления. Нет необходимости удалять файл

0 голосов
/ 13 июня 2010

У меня была та же проблема, что и у @dragulesq, но с сервером Red Hat .

Чтобы быть немного более многословным, просто поместите все, что вы хотите, в виде строки в файл .git / description на вашем локальном компьютере (в моем случае мой Mac OS X); Я помещаю веб-сайт , а затем на удаленный сервер, на котором размещено Git-репо (так сказать), редактирую файл .git / description и снова помещаю ту же строку (например, веб-сайт ). .

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