Mam problem, kiedy wypycham moje kody do git, gdy mam dostęp programisty do mojego projektu, ale wszystko jest w porządku, gdy mam dostęp główny. Skąd pochodzi problem? I jak to naprawić?
Komunikat o błędzie:
błąd: Nie możesz przekazywać kodu do chronionych gałęzi tego projektu.
...
błąd: nie udało się przesłać niektórych referencji do ...
Odpowiedzi:
nie ma problemu - wszystko działa zgodnie z oczekiwaniami.
W GitLab niektóre gałęzie mogą być chronione. Domyślnie tylko użytkownicy Maintainer / Owner mogą zatwierdzać chronione oddziały (patrz dokumentacja uprawnień ).
master
gałąź jest domyślnie chroniona - zmusza deweloperów do wydawania żądań scalenia do sprawdzenia przez opiekunów projektu przed zintegrowaniem ich z głównym kodem.Możesz włączyć i wyłączyć ochronę wybranych gałęzi w Ustawieniach projektu (gdzie dokładnie zależy od wersji GitLab - patrz instrukcje poniżej).
Na tej samej stronie ustawień możesz także zezwolić programistom na wypychanie do chronionych gałęzi. Po włączeniu tego ustawienia ochrona będzie ograniczona do odrzucania operacji wymagających
git push --force
(bazowania itp.)Od GitLab 9.3
Przejdź do projektu: „Ustawienia” → „Repozytorium” → „Rozwiń” w „Chronionych oddziałach”
Nie jestem pewien, kiedy ta zmiana została wprowadzona, zrzuty ekranu pochodzą z wersji 10.3.
Teraz możesz wybrać, kto może łączyć lub wypychać do wybranych gałęzi (na przykład: możesz
master
w ogóle wyłączyć wypychania , zmuszając wszystkie zmiany w gałęzi do wprowadzenia za pośrednictwem żądań scalenia). Lub możesz kliknąć „Nie chroń”, aby całkowicie usunąć ochronę z oddziału.Od GitLab 9.0
Podobnie jak GitLab 9.3, ale nie trzeba klikać „Rozwiń” - wszystko jest już rozwinięte:
Przejdź do projektu: „Ustawienia” → „Repozytorium” → przewiń w dół do „Chronionych gałęzi”.
Przed GitLab 9.0
Projekt: „Ustawienia” → „Chronione gałęzie” (jeśli jesteś przynajmniej „Mistrzem” danego projektu).
Następnie kliknij „Unprotect” lub „Developers can push”:
źródło
dla GitLab Enterprise Edition 9.3.0
Domyślnie gałąź master jest chroniona, więc nie chroń :)
1-Wybierz „projekt”
2-Wybierz „Repozytorium”
3-Wybierz „oddziały”
4-Wybierz „Ustawienia projektu”
5-W „Protected Branch” kliknij, aby „rozwinąć”
6-i po kliknięciu przycisku „nie chroń”
źródło
Ten błąd wystąpił w „pustej gałęzi” na moim lokalnym serwerze gitlab. Niektóre osoby wspomniały, że „nie można po raz pierwszy naciskać na pustą gałąź”. Próbowałem utworzyć prosty plik README na gitlab za pomocą mojej przeglądarki. Potem wszystko naprawiło się niesamowicie i problem rozwiązany !! Wspominam, że byłem mistrzem, a gałąź nie była chroniona.
źródło
Spróbuj wprowadzić zmiany zgodnie z linkiem
https://docs.gitlab.com/ee/user/project/protected_branches.html
spraw, aby projekt był niechroniony dla opiekuna lub programisty, abyś mógł go zatwierdzić
źródło
Prostym rozwiązaniem tego problemu jest szybka rozmowa z osobą, która pełni rolę właściciela w gitlab. Może pchać jeden plik READ.md lub podobny, aby rozpocząć. Później wszystko będzie działać jak wcześniej.
źródło
Byłem w systemie Windows, kiedy pojawił się ten problem.
Błąd jest dziwny, ponieważ zdarza się, zanim mogę wprowadzić swoją nazwę użytkownika i hasło. Co jeśli byłby bufor lub coś takiego? Kopię go w Internecie i znalazłem tę odpowiedź na forum pomocy technicznej gitlab :
W poświadczeniach systemu Windows znalazłem dwa wpisy GitLab dla starego konta. Usuwam oba i teraz działa!
Panel:
źródło
Jest to uważane za funkcje Gitlab.
Maintainer / Owner
Dostęp nigdy nie jest w stanie wymusić ponownego wciśnięcia dla domyślnej i chronionej gałęzi, jak stwierdzono w tych dokumentachźródło
Ten sam problem wystąpił w moim repozytorium. Jestem panem repozytorium, ale miałem taki błąd.
Nie chroniłem mojego projektu, a następnie ponownie go zabezpieczyłem i błąd zniknął.
Uaktualniliśmy wersję gitlab między moim poprzednim pchnięciem a problematycznym. Przypuszczam, że to uaktualnienie spowodowało błąd.
źródło
Powyższe rozwiązania jasno wyjaśniają, na czym polega problem; gdy nie masz kontroli nad repozytorium, najlepszym sposobem na przesłanie kodu jest utworzenie Widelca oryginalnego repozytorium i przesłanie kodu do tej nowej repozytorium, aby później można było przenieść ją do oryginalnej.
źródło