Ошибка Git при попытке нажать - крюк предварительного получения отклонен - PullRequest
132 голосов
/ 02 ноября 2011

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

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'

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

Ответы [ 19 ]

86 голосов
/ 03 ноября 2011

Вы должны спросить любого, кто поддерживает репо на git@mycogit/cit_pplus.git.

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

Также неплохо бы попросить этого человека обновить хук, чтобы он напечатал причины отклонения.

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

64 голосов
/ 03 ноября 2011

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

43 голосов
/ 19 февраля 2016

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

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

Чтобы решить эту проблему, я удалил последний коммит, используя:

git reset --soft HEAD~1

Затем я исключил файл из коммита.

Примечание: Используйте HEAD ~ N, чтобы вернуться к N числу предыдущих коммитов. (то есть 3, 4) Всегда используйте ключ --soft для сохранения изменений в папке

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

8 голосов
/ 24 сентября 2015

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

5 голосов
/ 30 сентября 2016

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

5 голосов
/ 28 декабря 2015

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

4 голосов
/ 26 июля 2017

В моем случае я получил это сообщение, потому что ветвь была помечена как «Защищенная» в GitLab.

3 голосов
/ 16 апреля 2018

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

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

1 голос
/ 05 февраля 2018

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

1 голос
/ 17 апреля 2019

Если кому-то это поможет:

У меня было пустое хранилище без главной ветки для снятия защиты (в Gitlab), поэтому перед запуском git push -u origin --all

  • Я должен был сначала запустить git push -u origin master,
  • временно снять защиту с главной ветки
  • подтолкнуть остальных (--all & --tags)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...