Ich habe ein Problem, wenn ich meine Codes auf Git drücke, während ich Entwicklerzugriff in meinem Projekt habe, aber alles ist in Ordnung, wenn ich Masterzugriff habe. Woher kommt das Problem? Und wie kann man das beheben?
Fehlermeldung:
Fehler: Sie dürfen in diesem Projekt keinen Code an geschützte Zweige senden.
...
Fehler: Einige Refs konnten nicht an ...
Antworten:
Es gibt kein Problem - alles funktioniert wie erwartet.
In GitLab können einige Zweige geschützt werden. Standardmäßig können nur Benutzer von Maintainern / Eigentümern geschützte Zweige festlegen (siehe Berechtigungsdokumente ).
master
Der Zweig ist standardmäßig geschützt. Entwickler müssen Zusammenführungsanforderungen ausgeben, die von den Projektbetreuern validiert werden müssen, bevor sie in den Hauptcode integriert werden.Sie können den Schutz für ausgewählte Zweige in den Projekteinstellungen aktivieren und deaktivieren (wobei dies genau von der GitLab-Version abhängt - siehe Anweisungen unten).
Auf derselben Einstellungsseite können Sie Entwicklern auch erlauben, in die geschützten Zweige zu pushen.
git push --force
Wenn diese Einstellung aktiviert ist , beschränkt sich der Schutz auf das Ablehnen von Vorgängen, die erforderlich sind (Rebase usw.).Seit GitLab 9.3
Gehen Sie zum Projekt: "Einstellungen" → "Repository" → "Erweitern" auf "Geschützte Zweige"
Ich bin mir nicht sicher, wann diese Änderung eingeführt wurde. Die Screenshots stammen aus der Version 10.3.
Jetzt können Sie auswählen, wer in ausgewählten Zweigen zusammengeführt oder verschoben werden darf (zum Beispiel: Sie können Push-
master
to-Vorgänge deaktivieren, um alle Änderungen am Zweig über Zusammenführungsanforderungen zu erzwingen). Oder Sie können auf "Schutz aufheben" klicken, um den Schutz vollständig vom Zweig zu entfernen.Seit GitLab 9.0
Ähnlich wie bei GitLab 9.3, jedoch ohne auf "Erweitern" klicken zu müssen - alles ist bereits erweitert:
Gehen Sie zum Projekt: "Einstellungen" → "Repository" → scrollen Sie nach unten zu "Geschützte Zweige".
Vor GitLab 9.0
Projekt: "Einstellungen" → "Geschützte Zweige" (wenn Sie mindestens "Master" eines bestimmten Projekts sind).
Klicken Sie dann auf "Unprotect" oder "Developers can push":
quelle
für die GitLab Enterprise Edition 9.3.0
Standardmäßig ist der Hauptzweig geschützt, also nicht geschützt :)
1-Wählen Sie Ihr "Projekt"
2-Wählen Sie "Repository"
3-Wählen Sie "Zweige"
4-Wählen Sie "Projekteinstellungen"
5-In "Geschützte Zweige" klicken Sie auf "Erweitern"
6-und nach dem Klicken in "Unprotect" Schaltfläche
quelle
Ich habe diesen Fehler bei "einem leeren Zweig" auf meinem lokalen Gitlab-Server festgestellt. Einige Leute erwähnten, dass "man nicht zum ersten Mal auf einen leeren Ast schieben kann". Ich habe versucht, über meinen Browser eine einfache README-Datei auf dem Gitlab zu erstellen. Dann wurde alles erstaunlich behoben und das Problem behoben !! Ich erwähne, dass ich der Meister war und der Zweig nicht geschützt war.
quelle
Versuchen Sie, Änderungen gemäß Link vorzunehmen
https://docs.gitlab.com/ee/user/project/protected_branches.html
Machen Sie das Projekt für den Betreuer oder Entwickler ungeschützt, damit Sie es festschreiben können
quelle
Einfache Lösung für dieses Problem, um schnell mit einer Person zu chatten, die eine Eigentümerrolle in gitlab hat. Er kann eine Datei READ.md oder ähnliches pushen, um damit zu beginnen. Später wird alles wie früher funktionieren.
quelle
Ich war unter Windows, als dieses Problem auftrat.
Der Fehler ist seltsam, da er auftritt, bevor ich meinen Benutzernamen und mein Passwort eingeben konnte. Was wäre, wenn es einen Cache oder ähnliches gäbe? Ich habe es online gefunden und diese Antwort im Support-Forum von gitlab gefunden :
In den Windows-Anmeldeinformationen habe ich zwei GitLab-Einträge für ein altes Konto gefunden. Ich entferne beide und jetzt funktioniert es!
Das Panel:
quelle
Dies wird in Gitlab als Feature betrachtet.
Maintainer / Owner
Der Zugriff kann nie wieder einen Push für den standardmäßigen und geschützten Zweig erzwingen, wie in diesem Dokument angegebenquelle
Ich hatte das gleiche Problem in meinem Repository. Ich bin der Meister des Repositorys, aber ich hatte einen solchen Fehler.
Ich habe mein Projekt ungeschützt und dann wieder geschützt, und der Fehler ist verschwunden.
Wir hatten die Gitlab-Version zwischen meinem vorherigen und dem problematischen Push aktualisiert. Ich nehme an, dass dieses Upgrade den Fehler verursacht hat.
quelle
Die obigen Lösungen erklären klar, wo das Problem liegt. Wenn Sie keine Kontrolle über das Repo haben, können Sie Ihren Code am besten senden, indem Sie eine Abzweigung des ursprünglichen Repos erstellen und Ihren Code an dieses neue Repo senden, damit Sie ihn später an das ursprüngliche Repo senden können.
quelle