Ошибка файла описания проекта в git?

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

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

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

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

git clone ssh://[email protected]/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

Любые идеи?

Ответ 1

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

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

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

Ответ 2

Удаление крючков/обновление не то, что вы хотите сделать.

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

Ответ 3

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

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

Ответ 4

chmod -x hooks/update

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

Ответ 5

Удалить файл или предотвратить его выполнение - это экстремальные решения. Если вы не хотите добавлять описание проекта, достаточно комментариев или удалить строки в hooks/update, которые блокируют 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

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

Ответ 6

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

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