4.4 KiB
🔧 Проблема с Git Hooks - Диагностика и Решение
📊 Текущая Ситуация
✅ Что Работает
- Git hooks установлены и работают на сервере Gitea
- Hook
post-receiveуспешно срабатывает при каждом push - Логирование работает корректно
- Связь с сервером Gitea работает нормально
❌ Что Не Работает
- Синхронизация с GitHub FAILS с ошибкой
Repository not found - Hook пытается отправить изменения в неправильный репозиторий
🐛 Причина Проблемы
В файле post-receive на сервере Gitea (не в локальной копии!) указан неправильный репозиторий:
# В hook на сервере написано:
GITHUB_REPO="git@github.com:username/configure_nginx_manager.git"
Но нужный репозиторий:
# Должно быть:
GITHUB_REPO="git@github.com:fofanov.dmitry/compress.git"
🔍 Доказательства из Лога
Из вывода git push видно, что hook работает, но не может найти репозиторий:
remote: [05.11.2025 10:12:50] 🔄 Начало синхронизации с GitHub
remote: [05.11.2025 10:12:50] 📝 Изменения обнаружены:
remote: [05.11.2025 10:12:50] Branch: master
remote: [05.11.2025 10:12:50] ⬆️ Отправка изменений в GitHub...
remote: ERROR: Repository not found. ← ВОТ ПРОБЛЕМА!
remote: fatal: Could not read from remote repository.
✅ Решение
Шаг 1: Подключитесь к серверу Gitea
ssh user@your-gitea-server
Шаг 2: Найдите репозиторий на сервере
Обычно путь один из:
/var/lib/gitea/data/gitea-repositories/fofanov.dmitry/compress.git
# или
/home/git/gitea-repositories/fofanov.dmitry/compress.git
Шаг 3: Перейдите в директорию hooks
cd /var/lib/gitea/data/gitea-repositories/fofanov.dmitry/compress.git/hooks/
Шаг 4: Отредактируйте файл post-receive
nano post-receive
Шаг 5: Найдите строку 15 и измените
Было:
GITHUB_REPO="git@github.com:username/configure_nginx_manager.git"
Должно быть:
GITHUB_REPO="git@github.com:fofanov.dmitry/compress.git"
Шаг 6: Сохраните и выйдите
- Нажмите
Ctrl+X - Нажмите
Y(да, сохранить) - Нажмите
Enter
Шаг 7: Проверьте результат
Сделайте тестовый коммит:
# На локальной машине
git commit --allow-empty -m "test: Проверка синхронизации с GitHub"
git push
Теперь в выводе должно быть:
remote: [05.11.2025 XX:XX:XX] ✅ Успешно синхронизировано с GitHub
Без ошибок Repository not found.
📝 Важно!
Я уже обновил локальные файлы в репозитории:
gitea-hooks/post-receive- исправлен на правильный репозиторийgitea-hooks/README.md- обновлена документация
Но эти файлы - это только шаблоны. Они не влияют на работающий hook на сервере!
Рабочий hook находится НА СЕРВЕРЕ в директории .git/hooks/ вашего репозитория.
🎯 Итог
Проблема: Hook на сервере Gitea настроен на старый репозиторий configure_nginx_manager
Решение: Отредактировать файл post-receive на сервере и указать правильный репозиторий compress
Результат: После изменения синхронизация с GitHub будет работать автоматически при каждом push
Дата: 5 ноября 2025
Статус: Требуется ручное исправление на сервере