ошибка: невозможно создать хуки/предварительный прием: такого файла или каталога нет, но хуки/предварительный прием существуют в git-репозитории на стороне сервера

Клон проекта с моего веб-сервера Gogs, затем я добавляю файл в репозиторий Git и отправляю эту фиксацию на удаленный сервер, но терминал сообщает об ошибке cannot spawn hooks/pre-receive:No such file or directory.

Я проверил это и убедился, что файл pre-receive существует в server-side git-repository, а клонированный файл имеет имя pre-receive.sample.

Итак, я не знаю, почему это произошло и что я могу сделать для его решения. Пожалуйста помоги.

изображение на стороне сервера:

введите здесь описание изображения

изображение на стороне клиента:

введите здесь описание изображения

системная оболочка: введите здесь описание изображения


person HanQ    schedule 30.11.2018    source источник


Ответы (1)


pre-receive.sample это просто образец. В любом случае pre-receive не имеет смысла на стороне клиента, поэтому эту часть можно проигнорировать или даже удалить из вопроса.

hooks/pre-receive на стороне сервера интереснее. Он существует, и кажется, что сервер пытается его запустить, но не удается. Я подозреваю, что проблема с шебангом — 1-й строкой скрипта, которая указывает на интерпретатор (скорее всего, на оболочку) для запуска скрипта. Убедитесь, что оболочка существует на сервере. Например, если shebang #!/bin/bash, убедитесь, что на сервере есть /bin/bash файл, и этот файл можно запустить. Исправьте шебанг, то есть укажите на существующую оболочку, например /bin/sh.

person phd    schedule 30.11.2018
comment
Я обновляю описание вопроса, он пишет '!#/user/bin/env bash' на первом месте, и я уже установил bash в системную среду, но это все равно не удалось - person HanQ; 30.11.2018