Я запустил gitlabhq rails server на виртуальной машине, выполнив 1-6 шагов из этого учебного руководства https://github.com/gitlabhq/gitlab-recipes/blob/master/install/centos/README.md и запустил команду rails server, выполняющую команду sudo -u git -H bundle exec rails s -e production
. После этого я создал пользователя с помощью инструментов администратора и создал новый проект под этим пользователем. Затем я пытаюсь подтолкнуть существующий проект к этому репо, как всегда. Но на последнем этапе git push origin master
происходит ошибка с ошибкой
[удалено отклонено] master -> master (обработчик предварительного приема отклонен)
Дополнительная информация:
1) Я не активировал пользователя (владельца проекта) по ссылке активации по электронной почте, потому что я не настроил почтовый сервис на стороне сервера и не нашел инструкций, как это сделать в этом руководстве.
2) Сервер Gitlab генерирует советы, как подтолкнуть проект к репо, и его нет repositories/
в пути. Я имею в виду, что он генерирует, git@mygitlabhost:user/repo.git
а git@mygitlabhost:repositories/user/repo.git
не правильно.
3) Когда я пытался отладить ее, я открыл pre-receive
сценарий внутри репо на сервере и попытался выходной переменными (есть три из них): refs = ARGF.read
, key_id = ENV['GL_ID']
и repo_path = Dir.pwd
и обнаружил, что KEY_ID всегда пустой. Может быть, проблема здесь ... Если это так, пожалуйста, дайте мне советы, как это исправить. Спасибо
Ответы:
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
источник
GitLab 8.11
как параметры немного изменились, проверьте детали здесьA. Во-первых, убедитесь, что вы используете правильные данные для входа в систему для подключения к Bitbucket Server (т. Е. Имя пользователя / пароль / ключ SSH, который принадлежит вам)
B. Затем убедитесь, что имя / адрес электронной почты правильно заданы в вашей локальной конфигурации Git: установите локальную конфигурацию Git для учетной записи, под которой вы пытаетесь нажать (проверка подтверждает, что вы являетесь тем человеком, который зафиксировал файлы) * Обратите внимание, что это чувствительно к регистру, как для имени, так и для адреса электронной почты * Это также чувствительно к пробелам - некоторые учетные записи компании имеют дополнительные пробелы / символы в своем имени, например. "
Contractor/ space space(LDN)
" Вы должны включить в свою конфигурацию то же количество пробелов, что и на Bitbucket Server. Проверьте это в блокноте, если застряли.C. Если вы использовали не ту учетную запись, просто измените учетные данные своей учетной записи (имя пользователя / пароль / ключ SSH) и повторите попытку.
D. Иначе, если ваша локальная конфигурация неверна, вам нужно будет изменить ее
open -a TextEdit.app ~/.gitconfig
ПРИМЕЧАНИЕ. Вам придется исправить старые коммиты, которые вы пытались нажать.
Изменить свой последний коммит:
Попробуйте повторно подтолкнуть ваши коммиты:
источник
В моем случае моя команда привела к созданию репо (репо было пусто) и назначило меня разработчиком, чтобы, когда я непосредственно нажимал на код, чтобы справиться с ошибкой, с которой я столкнулся.
! [remote rejected] master -> master (pre-receive hook declined)
Так как это было исправлено, он назначил меня помощником, чтобы я смог подтолкнуть код прямо к мастеру.источник
Кажется, проблема в некоторых сервисах, таких как sidekiq. Запуск
sudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production
выводит все проблемы с конфигом.источник
Я следовал инструкции журналов heroku img https://devcenter.heroku.com/articles/buildpacks#detection-failure (используйте cmd: heroku logs -> показать свою ошибку), затем выполните cmd: "heroku buildpacks: clear". наконец, у меня получилось!
источник
Возможно, у вас нет доступа разработчика к проекту или основной ветке. Вам нужен доступ dev, чтобы подтолкнуть новую работу.
Новая работа означает новые ветви и коммиты.
источник
Может быть и не так, но это было решением моей ошибки « отклонено до получения ответа »:
Есть некоторые репозитории, которые разрешают модификации только через Pull Request . Это означает, что вы должны
источник
Вам нужно добавить свой ssh-ключ в вашу учетную запись git, если он выдает ошибку, удалите предыдущий ssh-ключ и создайте новый ssh-ключ, затем добавьте.
источник
Я решил эту проблему путем изменения
remote 'origin' url
отhttp
кgit
протоколу в.git/config
источник
Зайдите в Настройки проекта -> Крючки -> (Под) Предварительно полученные крючки
Отключить cp требовать ссылки на проблему в коммитах
источник
Я наткнулся на ту же ошибку, используя BitBucket. У меня было локальное Git-репозиторий, для которого я хотел создать резервную копию в сети, поэтому я создал новый репозиторий из своей учетной записи BitBucket (используя веб-интерфейс).
После запуска
git remote add origin git@bitbucket.org:StatMarianne/<a private repo>.git
я побежалgit push origin master
безрезультатно (обычно я не использую опцию -u сgit push
тем, что не против набирать полные имена репо и веток при толкании и вытягивании).Ошибка читается:
Но моя локальная ветвь успешно работала, когда я запускался
git push -u origin master
(строго следуя инструкциям BitBucket).Я нахожу это удивительным, так как -u (
--set-upstream
) должен только «добавить ссылку вверх по течению (отслеживание) ...».источник
Я столкнулся с той же проблемой, потому что я помещаю свой код прямо в основную ветку, и у меня нет на это прав. Поэтому я помещаю свой код в новую ветку, и после этого я создал запрос на объединение с мастером.
источник