Ошибка Git при попытке push-pre-receive hook отклонена

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

git.exe push -v --progress  "origin" iteration1:iteration1

remote: *********************************************************************
To ssh://git@mycogit/cit_pplus.git
! [remote rejected] iteration1 -> iteration1 (pre-receive hook declined)
error: failed to push some refs to 'ssh://git@mycogit/cit_pplus.git'

что происходит?

14 ответов


вы должны спросить, кто поддерживает РЕПО в git@mycogit/cit_pplus.git.

ваши коммиты были отвергнуты pre-receive крючком этого РЕПО (это настраиваемый пользователем скрипт, который предназначен для анализа входящих коммитов и решения, достаточно ли они хороши, чтобы быть принятыми в репо).

также хорошая идея попросить этого человека обновить крючок, чтобы он напечатал причины отказа.

Если сопровождающий - это вы сами, то это похоже, у вас проблемы с настройкой на стороне сервера. Пожалуйста, поделитесь дополнительной информацией.


Я бы поспорил, что вы пытаетесь не-быстрый вперед толчок и крюк блокирует его. Если это так, просто запустите git pull --rebase прежде чем нажать, чтобы перебазировать локальные изменения на новейшей кодовой базе.


размер файла важен. Существует ограничение ~120MB для одного файла. В моем случае .в gitignore с помощью Visual Studio был указан файл, но файл все еще был зафиксирован. При использовании git cli мы можем получить более подробную информацию об ошибке.

pre-receive hook отклонен в результате большого файла. В основном проверка толчка.

чтобы разрешить его, я удалил последнюю фиксацию, используя:

git reset --soft HEAD~1

затем я исключил файл из совершать.

надеюсь, что это помогает.


Это может быть вызвано тем,что у вас не было права нажимать фиксацию на какую-либо ветку,например master, вы можете попросить сопровождающего дать вам право нажимать


У меня была эта проблема при попытке объединить изменения с размером файла, большим, чем разрешенный удаленный репозиторий (в моем случае это был GitHub)


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


в моем случае я получил это сообщение, потому что ветка была отмечена как "защищенная" в GitLab.


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

Не уверен, что причина подчеркивания была, но это исправило ее.


Я использовал GitKraken, и мы сделали локальную ветвь, затем мы объединили в ней две удаленные ветви, а затем попытались подтолкнуть локальную ветвь к origin. Он не работал с тем же сообщением об ошибке.

на решение С создайте локальную ветку и нажмите ее сначала в origin, а затем выполните слияние.


Я получил это при попытке нажать на экземпляр dokku. Оказывается, диск был полон на моем сервере.

побежал: du -f

и результат был:

Filesystem      Size  Used Avail Use% Mounted on
udev            476M     0  476M   0% /dev
tmpfs           100M  4.4M   95M   5% /run
/dev/xvda1      7.8G  7.4G  8.9M 100% /

в моем случае у нас есть крючки для сообщений фиксации, наш скрипт сервера принимает фиксации, если у них есть специальный формат для сообщения фиксации"<JIRA ID><Message>". Он (крюк) отклоняет фиксацию, если соответствующий билет Jira не существует или в сообщении фиксации есть специальные символы. Я сталкиваюсь с этой ошибкой при добавлении /, [, > etc. в сообщении commit удаление этих работ отлично работает.


Это на самом деле происходит, когда YACC включен на стороне сервера в BitBucket. YACC позволяет имена проблем JIRA, которые будут упомянуты в сообщении фиксации. Поэтому всякий раз, когда вы совершаете что-либо, по крайней мере, держите свой номер JIRA в сообщении фиксации, а затем дополнительно вы можете добавить свое собственное сообщение.


для меня авторизация на удаленном сервере git решит проблему. enter image description here


в моем случае это потому, что я случайно добавил гигантский файл к моему незафиксированному толчку, и я не мог избавиться от него, независимо от того, что я сделал после этого.

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

Это звучит не хорошо, но работает...