Виправити помилку GitLab: "Вам заборонено надсилати код до захищених гілок цього проекту"?


327

У мене є проблема, коли я натискаю свої коди на git, коли у мене є доступ для розробників у моєму проекті, але все нормально, коли я маю доступ до майстра. Звідки ця проблема? І як це виправити?

Повідомлення про помилку:

помилка: Вам заборонено натискати код на захищені гілки цього проекту.
...
помилка: не вдалося натиснути деякі відгуки на ...


Відповідь Хкорга - це вдале рішення. З цим є ще одна проблема. Якщо проект щойно створили, і він ще не має відділення. Якщо натиснути "Захищені гілки", він перенаправить на головну сторінку проекту. Створення філії буде працювати.
pdwjun

Дивіться також stackoverflow.com/a/61964599/6309 , з GitLab 13.0 (травень 2020 року), де можна включити захист гілки за замовчуванням на рівні групи.
VonC

Відповіді:


506

немає жодної проблеми - все працює як очікувалося.

У GitLab деякі гілки можна захистити. За замовчуванням лише користувачі Maintainer / Owner можуть брати на себе зобов'язання щодо захищених гілок (див. Документи дозволів ). masterгілка захищена за замовчуванням - вона змушує розробників надсилати запити на об'єднання, щоб їх перевірити керівники проекту, перш ніж інтегрувати їх у основний код.

Ви можете увімкнути та вимкнути захист на вибраних гілках у Налаштуваннях проекту (де саме залежить від версії GitLab - див. Інструкції нижче).

На цій же сторінці налаштувань ви також можете дозволити розробникам просуватися в захищені гілки. Якщо цей параметр увімкнений, захист буде обмежений відхиленням операцій, які потребують git push --force(перезавантаження тощо)

З моменту GitLab 9.3

Перейдіть до проекту: "Налаштування" → "Репозиторій" → "Розгорнути" на "Захищені гілки"

введіть тут опис зображення

Я не дуже впевнений, коли ця зміна була введена, скріншоти - з версії 10.3.

Тепер ви можете вибрати, кому дозволено об'єднатись або натиснути на вибрані гілки (наприклад: ви можете masterвзагалі вимкнути натискання , змушуючи всі зміни в гілці здійснюватись через запити на об'єднання). Або ви можете натиснути "Зняти захист", щоб повністю зняти захист з гілки.

З моменту GitLab 9.0

Аналогічно GitLab 9.3, але не потрібно натискати "Розгорнути" - все вже розгорнуте:

Перейдіть до проекту: "Налаштування" → "Репозиторій" → прокрутіть униз до "Захищені гілки".

введіть тут опис зображення

Попередньо GitLab 9.0

Проект: "Налаштування" → "Захищені гілки" (якщо ви принаймні "Майстер" даного проекту).

Установки → Захищені гілки

Потім натисніть кнопку "Зняти захист" або "Розробники можуть натиснути":

введіть тут опис зображення


Не забувайте, що можуть бути потрібні деякі дозволи. Як зазначено в docs.gitlab.com/ee/user/project/protected_branches.html , принаймні "рівень дозволу на майстер". У моєму випадку натискання на колесо налаштувань показує лише опцію "Залишити проект".
CoolMind

1
Чомусь мені раптом довелося додати себе як головного користувача для власного проекту.
jgillich

3
У мене з’явилася ця проблема, оскільки я НЕ був членом власного проекту, і я вже натиснув на цей проект ... Щоб змінити його, у проекті туру натисніть на шестерню, Члени, шукайте свого користувача, надайте йому роль та натисніть "Додати" користувачів для проектування ".
Loenix

Дивно, мені теж довелося включити себе в персональний проект на gitlab.com
Thomas Decaux

1
Добре, якщо ви єдиний обслуговувач або розробник, тож ви можете змінити налаштування і пограти з ним. Але якщо є команда, яка працює над репо, то це не є хорошою практикою зміни захисту репо.
Мнемо

26

для GitLab Enterprise Edition 9.3.0

За замовчуванням головна гілка захищена так незахищена :)

1 - Виберіть "проект"

2 - Виберіть "Репозиторій"

3-Виберіть "гілки"

4-Виберіть "Налаштування проекту"

5-в "Захищені гілки" натисніть, щоб "розгорнути"

6 та після натискання кнопки "незахистити"


У мене не було "відділень", оскільки я ще не створив жодного файлу в цьому сховищі. Я створив Readme.md і з’явились гілки.
Ікром

1

Я зіткнувся з цією помилкою на "порожній гілці" на моєму локальному сервері gitlab. Деякі люди згадували, що "не можна вперше натискати на порожню гілку". Я спробував створити простий файл README в gitlab через свій браузер. Потім все виправлено дивовижно, і проблема розібралася !! Я згадую, що я був господарем, а галузь не захищена.


Це для мене дивно, і я розглядаю це питання як помилку gitlab. Для мене неприйнятно не мати дозволу проштовхуватися в порожнє репо. Я сподіваюся, що хлопці з Git мають на це відповідь.
Вахід F


1

Просте рішення цієї проблеми - швидкий чат з людиною, яка має власницю роль у gitlab. Він може натиснути один файл READ.md або подібний, щоб тільки почати. Пізніше все буде працювати, як раніше.


Якщо можливо, спробуйте отримати роль власника у сховищі. Отримавши роль власника, ви можете взяти на себе зобов’язання безпосередньо опанувати. Це дратує, але запобігаючий гачок не створювати небажаних нових проектів. Немає жодних злому, поки власник репо не надішле перший файл або ви не отримаєте ролі власника. Сподіваюсь, це допомагає.
kris

1

Я був у Windows, коли з’явилася ця проблема.

Помилка дивна, оскільки це відбувається до того, як я міг ввести своє ім’я користувача та пароль. Що робити, якщо був кеш або щось подібне? Я викопав його в Інтернеті і знайшов цю відповідь на форумі підтримки gitlab :

Я відкриваю "Панель керування => Облікові записи користувачів => Керування вашими обліковими даними => Уповноважені дані Windows". Я знайшов два для https: //@github.com, і один був невірним користувачем. Я видалив його, і на наступному "git push" мене змінили та надали правильні облікові дані, і воно спрацювало! Деякі інші замітки - це могло статися з будь-яким git дистанційним.

У Windows Credentials я знайшов два записи GitLab для старого облікового запису. Я вилучаю і те, і тепер це працює!

Панель:

введіть тут опис зображення


@YanickSenn Запрошуємо вас Я втратив багато часу на цьому. Радий, що це допомагає.
aloisdg переходить на codidact.com

1

Це розглядається як особливості в Gitlab.

Maintainer / Ownerдоступ ніколи не може змусити знову натиснути на гілку за замовчуванням та захищену гілку, як зазначено в цих документах введіть тут опис зображення


1
Насправді це зовсім не прикро. Це, безумовно, гарна річ. Це додатковий шар захисту.
Chiramisu

0

Таку ж проблему я відчув у своєму сховищі. Я - господар сховища, але в мене була така помилка.

Я захистив свій проект, а потім знову захистив, і помилка не зникла.

Ми оновили версію gitlab між моїм попереднім натиском та проблемним. Я припускаю, що це оновлення створило помилку.


0

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

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