2015-02-04 2 views
63

Я запустил сервер gitlabhq rails на виртуальной машине, выполнив 1-6 шагов из этого урока https://github.com/gitlabhq/gitlab-recipes/blob/master/install/centos/README.md и запуская команду сервера rails, выполняющую команду sudo -u git -H bundle exec rails s -e production. После этого я создал пользователя, используя инструменты администратора и создал новый проект под этим пользователем. Затем я пытаюсь подтолкнуть существующий проект к этому репо, как всегда. Но на последнем этапе, git push origin master завершается с ошибкойОшибка Git push pre-receive hook отклонен

[remote rejected] master -> master (pre-receive hook declined)

Дополнительная информация:

1) Я не активировали пользователь (владелец проекта) через ссылку активации электронной почты, потому что я не настроен почтовый сервис на стороне сервера, и я не нашел инструкции, как это сделать в этом руководстве.

2) Сервер Gitlab генерирует советы о том, как перенаправить проект на репо, и нет пути repositories/. Я имею в виду, что он генерирует [email protected]:user/repo.git вместо [email protected]:repositories/user/repo.git, что является правильным.

3) Когда я пытался отладить ее, я открыл pre-receive скрипт внутри репо на сервере и попытался выходных переменных (есть три из них): refs = ARGF.read, key_id = ENV['GL_ID'] и repo_path = Dir.pwd и обнаружили, что KEY_ID всегда пусто. Может быть, проблема здесь ... Если да, пожалуйста, дайте мне советы о том, как это исправить. Спасибо

ответ

6

Кажется, проблема связана с некоторыми услугами, такими как sidekiq. Запуск sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production выводит все проблемы с конфигурацией.

0

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

+0

Это не помогло. :(Протестировано на обоих учетных записях - root и myuser на vm и локальной машине соответственно – Hroft

+0

проверить git remote -v, добавлен ваш git repo или нет? –

+0

'git remote -v' выходы: origin \t git @ mygitlabhost: репозитории/user/repo.git (fetch) origin \t git @ mygitlabhost: репозитории/пользователь/repo.git (push) – Hroft

91

GitLab по умолчанию марки master отрасль как protected (см. Часть Protecting your code в https://about.gitlab.com/2014/11/26/keeping-your-code-protected/). Если это так в вашем случае, то это может помочь:

Open your project > Settings [> Repository tab] and go to "Protected branches", select: "Developers can push" and try again.

через https://gitlab.com/gitlab-com/support-forum/issues/40

+1

Это работает отлично! THANK YOU –

+3

Пользовательский интерфейс немного изменился: после проекта «Настройки» нажмите вкладку «Репозиторий» Затем «Защищенные ветви» –

+0

Так что у меня была та же проблема, что и у OP, и это решение сработало для меня, спасибо! Но теперь я задаюсь вопросом, почему? Я использовал gitlab некоторое время, и вдруг у меня есть Что изменилось? –

2

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

Новое произведение означает новые филиалы и совершает.

0

Может быть не так, но это было решение моего «предварительно получить крюк отказалось» ошибки:

Есть некоторые хранилища, которые только позволяют модификации через Выдвижной запрос. Это означает, что у вас есть

  1. Создайте новую ветку, беря за основу ветку, на которую вы хотите нажать свои изменения.
  2. Зафиксируйте и вставьте изменения в новую ветку.
  3. Открыть запрос на вытягивание, чтобы объединить ветку с оригинальной.
2

Following resolved problem in my local machine:

A. Во-первых, убедитесь, что вы используете правильный журнал о деталях подключения к серверу Bitbucket (то есть.введите имя пользователя/пароль/SSH, который принадлежит вам)

B. Затем убедитесь, что имя/адрес электронной почты правильно настроены в локальной конфигурации Git: укажите свою локальную конфигурацию Git для учетной записи, которую вы пытаетесь нажать (проверка подтверждает, что вы являетесь лицом, совершившим файлы) * Обратите внимание, что это чувствительно к регистру, как для имени, так и для адреса электронной почты * Оно также чувствительно к пространству - на некоторых учетных записях компании есть дополнительные пробелы/символы от их имени, например , "Contractor/ space space(LDN)". Вы должны указать такое же количество пробелов в вашей конфигурации, как на сервере Bitbucket. Проверьте это в Блокноте, если оно застряло.

C. Если вы использовали неправильную учетную запись, просто переключите учетные данные своей учетной записи (имя пользователя/пароль/SSH) и попробуйте нажать еще раз.

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

For MAC

open -a TextEdit.app ~/.gitconfig

ПРИМЕЧАНИЕ: Вы должны исправить старое обязательство, что вы пытаетесь толкать.

  1. Изменить последний коммит:

    > git commit --amend --reset-author 
    
       
    
<save and quit the commit file text editor that opens, if Vim then 
    :wq to save and quit> 
    

 
    
    
    


 
    
  2. Попробуйте повторно выдвигая свои коммиты:

    > git push 
    
Смежные вопросы