git push не вдається з віддаленим: помилка: гачок відхилений для оновлення refs / heads / master


9

Нещодавно я намагаюся розпочати власний проект із спільного git repo, і у мене виникли деякі ускладнення. Я новачок в git, але ось що я намагався зробити, щоб просто перевірити його.

Я запускаю наступні команди, і всі вони працюють добре.

git config --global user.name "MYNAME"
git config --global user.email "MYEMAIL"
mkdir testproject
cd testproject
git init
touch README
git add README
git commit -m 'first commit'
git remote add origin git@git.xxxxx.org:community/testproject.git

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

git push -u origin master

і помилка є.

Counting objects: 3, done.
Writing objects: 100% (3/3), 204 bytes | 0 bytes/s, done.
Total 3 (delta 0), reused 0 (delta 0)
Username for 'http://git.xxxxxx.org': MYEMAIL
Password for 'http://MYEMAIL.com@git.xxxxxx.org': 
remote: /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/spec_set.rb:92:in `block in materialize': Could not find rake-10.1.0 in any of the sources (Bundler::GemNotFound)
remote:         from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/spec_set.rb:85:in `map!'
remote:         from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/spec_set.rb:85:in `materialize'
remote:         from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/definition.rb:114:in `specs'
remote:         from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/definition.rb:159:in `specs_for'
remote:         from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/definition.rb:148:in `requested_specs'
remote:         from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/environment.rb:18:in `requested_specs'
remote:         from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/runtime.rb:13:in `setup'
remote:         from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler.rb:120:in `setup'
remote:         from /usr/local/lib/ruby/gems/2.0.0/gems/bundler-1.3.5/lib/bundler/setup.rb:17:in `<top (required)>'
remote:         from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
remote:         from /usr/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
remote: error: hook declined to update refs/heads/master
To http://git.xxxxxx.org/community/testproject.git
 ! [remote rejected] master -> master (hook declined)
error: failed to push some refs to 'http://git.xxxxxx.org/community/testprojact.git'

Я не дуже впевнений, що робити звідси, але будь-яка допомога дуже цінується.

Також я запускаю Arch, якщо це має значення.

Редагувати: я спробував перевстановити граблі, і це не спрацювало. Моя поточна версія граблі була 10.1.1, тому я спробував її видалити і замінити версією 10.1.0, і це також не виправили.

Однак, коли я встановлював граблі, я отримав помилку:

WARNING:  You don't have /home/josh/.gem/ruby/2.0.0/bin in your PATH,
          gem executables will not run.

Чи може це сприяти проблемі?

Відповіді:


9

Те, що пульт відмовився приймати дані, є лише побічним ефектом реальної проблеми - git вважає, що йому було відмовлено, оскільки один з гаків на віддаленому кінці не вдався зі статусом виходу> 0 (ви можете побачити, що це було в Ruby traceback). Здається, один із гачків намагається використати rake, але не може його знайти. Мабуть, це не проблема з вашим конкретним репо. Це повідомлення також не з вашого локального комп’ютера - зауважте, що він є префіксом "віддалений", саме пульт відсутній rake, тому, ймовірно, лише системний адміністратор на цій стороні може вирішити проблему.

Я б запропонував вам зв’язатися з тим, хто керує вашим сховищем git спільноти.


Саме так я і думав. Жоден з гачків у моєму git repo не активний, і поки що ніщо, що я зробив, навіть здається, що не змінило помилку або створило нові. Я зв’яжусь із власником репо і перевірте, чи є у нього інформація про проблему.
Джошуа Строт

Виявилося, що проблема полягала в тому, що я намагався натиснути на метод HTTP, який не підтримується в їх GitLab. Натомість ви повинні натиснути на SSH, що чудово працює.
Треба

0

Я вважаю, це ваше питання.

remote: error: hook declined to update refs/heads/master
To http://git.xxxxxx.org/community/testproject.git
 ! [remote rejected] master -> master (hook declined)

Пошук цієї помилки Я натрапив на це запитання і відповіді на SO, з назвою: помилка: гак відмовився оновити refs / heads / external_pub під час натискання гілки .

Здавалося б, на сервері є гак git, який відхиляє натиск.

витяг

Гачки з боку сервера

Окрім гачок на стороні клієнта, ви можете використовувати пару важливих гачок на стороні сервера як системний адміністратор, щоб застосувати майже будь-яку політику для вашого проекту. Ці сценарії виконуються до та після натискань на сервер. Попередні гачки можуть вийти з ненульового значення в будь-який час, щоб відхилити натискання, а також надрукувати повідомлення про помилку назад клієнту; Ви можете налаштувати політику, яка настільки складна, як Ви хочете.

Щоб визначити, чому ви отримуєте це повідомлення про помилку, вам потрібно буде з’ясувати, який гачок вас відключає. Гачки зберігаються у hooksпапці всередині папки git (на кінці віддаленого сервера) - знайдіть pre-receiveгачок або updateгачок і перевірте, що викликає вашу проблему.


Всередині папки гачків у мене є кілька файлів із розширенням .sample. У мене немає гачка попереднього отримання, проте є гачок для оновлення. Оскільки всі вони мають розширення. Я подивився в Інтернеті, і є кілька людей із моєю проблемою, які вирішили це, роблячи різні речі, жодна з яких не вирішила це в моєму випадку.
Джошуа Строт

0

Перевірка ролі / групи та дозволу у сховищі GIT Мій випадок, лише червоний дозвіл та його вирішення після доступу для читання / запису, наданого командою репозиторію GIT


0

Якщо @Radhakrishnan вже запропонував, у вас може виникнути проблема з дозволом.

Якщо ви використовуєте Redmine Git хостинг , перевірте, чи ваші права доступу до проектів призначені користувачеві, який намагається переписати свої відстежувальні посилання на git.

Зауважте, що я припускаю, що ви знаєте про вплив git push-force на інших користувачів, які можуть мати спільну віддалену гілку. Для отримання детальної інформації перегляньте цю статтю

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.