Git push-ошибка

Я запустил сервер 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 выходит из строя с ошибкой

[удаленный отказ] master → master (отклонение до приема)

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

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

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

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

Ответ 1

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

Ответ 2

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

Откройте ваш проект> Настройки [> вкладка Репозиторий] и перейдите в "Защищенные ветки", выберите "Разработчики могут нажать" и попробуйте снова.

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

Для версии 8.11 и выше с инструкциями здесь: https://docs.gitlab.com/ee/user/project/protected_branches.html#restricting-push-and-merge-access-to-termin-users

Ответ 3

Следующая проблема решена на моей локальной машине:

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

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

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

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

Для 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
    

Ответ 4

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

Новая работа означает новые ветки и фиксации.

Ответ 5

Возможно, это не так, но это было решением моей ошибки "pre-receive hook declined":

Есть несколько репозиториев, которые допускают модификации только через Запрос Pull. Это означает, что вы должны

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

Ответ 6

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

Ответ 7

Я решил эту проблему, изменив remote 'origin' url с http на протокол git в .git/config

Ответ 8

Зайдите в Настройки проекта → Крючки → (Под) Предварительно полученные крючки

Отключить cp требовать ссылки на проблему в коммитах