Ich habe ein einzelnes Repo, in dem ich 2 Benutzergruppen habe:
- Admins
- HTML / UI-Entwickler
Ich möchte master
meinen HTML-Entwicklern keinen Lese- / Schreibzugriff auf meinen Zweig gewähren, da sie nicht daran arbeiten müssen und den Kerncode nicht missbrauchen sollten.
Sie müssen jedoch an ihrer eigenen Niederlassung arbeiten ui-developers
. Wie mache ich das auf Git?
PS: Ich benutze BitBucket
AKTUALISIEREN:
Ich hatte diese Frage gestellt, als ich noch sehr neu in Codierung und Git war. Nach 2 Jahren Erfahrung weiß ich jetzt, dass Git es nicht erlaubt, den READ-Zugriff für einen bestimmten Zweig einzuschränken. Mit Diensten wie Bitbucket, Gitlab und Github können Sie jedoch Einschränkungen für das Schreiben und Zusammenführen von Zweigen festlegen.
Außerdem bin ich vor 6 Monaten zu Gitlab gewechselt :)
quelle
Antworten:
Git selbst hat keine solche Funktion, aber viele Hosting-Anbieter. Dies wird allgemein als Zweigschutz bezeichnet . Soweit ich weiß, gibt es keine Möglichkeit, den Lesezugriff zu verhindern.
Verwenden von BitBucket
BitBucket ermöglicht eine Vielzahl von Anpassungen für die Aktionen, die durch den Zweigschutz verhindert werden sollen. So schützen Sie einen Zweig:
Wechseln Sie zu einem Repository in einem Projekt.
Wählen Sie "Einstellungen"> "Zweigstellenberechtigungen".
Klicken Sie auf Berechtigung hinzufügen.
Wählen Sie im Feld Verzweigungen entweder den Verzweigungsnamen, das Verzweigungsmuster oder das Verzweigungsmodell aus.
Filialname - Wählen Sie eine vorhandene Filiale nach Namen aus.
Verzweigungsmuster - Geben Sie eine Verzweigung mithilfe der Verzweigungsmustersyntax für übereinstimmende Verzweigungsnamen an.
Verzweigungsmodell - Wählen Sie den Verzweigungstyp aus, auf den der Zugriff beschränkt werden soll.
Löschen von Zweigen - Verhindert das Löschen von Zweigen und Tags.
Umschreiben des Verlaufs - Verhindert das Umschreiben des Verlaufs in den angegebenen Zweigen, z. B. durch Force Push oder Rebase.
Änderungen ohne Pull-Anforderung - verhindert, dass Änderungen direkt in die angegebenen Zweige übertragen werden. Änderungen sind nur mit einer Pull-Anfrage zulässig.
Alle Änderungen - verhindert Pushs auf die angegebenen Zweige und schränkt das Erstellen neuer Zweige ein, die den angegebenen Zweigen oder Mustern entsprechen.
Optional: Fügen Sie Ausnahmen für eine der ausgewählten Einschränkungen hinzu. Das Hinzufügen eines Benutzers oder einer Gruppe als Ausnahme bedeutet, dass dies nicht für sie gilt. Dies ist nicht erforderlich; Wenn keine Ausnahmen hinzugefügt werden, gilt die Einschränkung für alle.
Klicken Sie zum Erstellen auf Erstellen.
Quelle
Verwenden von GitHub
Ein Repository kann mehrere geschützte Zweigregeln haben, die sich auf dieselben Zweige auswirken.
Geschützte Zweige sind nur in öffentlichen Repositories mit GitHub Free verfügbar.
Der geschützte Zweig in GitHub kann so konfiguriert werden, dass Folgendes erforderlich ist:
Pushs, die über Pull-Anfragen ausgeführt und vor dem Zusammenführen überprüft werden sollen,
andere Zweige, die die Statusprüfung bestehen, bevor sie zusammengeführt werden,
verpflichtet sich zur Unterzeichnung,
Geschichte linear zu sein,
dass die oben genannten Regeln auch für Administratoren durchgesetzt werden,
dass Pushs von bestimmten Personen, Teams oder Apps kommen,
Force Pushs und Deletions können unabhängig voneinander zugelassen werden.
So schützen Sie einen Zweig:
Navigieren Sie auf GitHub zur Hauptseite des Repositorys.
Klicken Sie unter Ihrem Repository-Namen auf Einstellungen .
Klicken Sie im linken Menü auf Zweige .
Klicken Sie neben "Zweigschutzregeln" auf Regel hinzufügen .
Geben Sie unter "Filialnamensmuster" den Filialnamen oder das Filialmuster ein, das Sie schützen möchten ( betroffene Filialen werden aufgelistet und gezählt ).
Konfigurieren Sie bei Bedarf bestimmte Zweigregeleinstellungen.
Klicken Sie auf Änderungen erstellen oder speichern .
Quelle
Verwenden von GitLab
In GitLab führt der Schutz eines Zweigs Folgendes aus:
So schützen Sie den Zweig:
Navigieren Sie zur Hauptseite des Projekts.
Klicken Sie in der oberen rechten Ecke auf das Einstellungsrad und wählen Sie Geschützte Zweige.
Wählen Sie im Dropdown-Menü Zweig den Zweig aus, den Sie schützen möchten, und klicken Sie auf Schützen.
Sobald dies erledigt ist, wird der geschützte Zweig in der Liste "Bereits geschützt" angezeigt.
Sie können dann Benutzern mit Entwicklerrechten Zugriff gewähren, indem Sie "Entwickler können zusammenführen" oder "Entwickler können Push" aktivieren.
Quelle
quelle
Zusätzlich zur Antwort von @ 1615903 können Sie einen Zweig in Azure DevOps wie folgt schützen:
Verwenden von Azure DevOps
Schützen Sie in Azure DevOps einen Zweig mit Sicherheitsberechtigungen und Richtlinien, mit denen Sie Folgendes tun können:
und detailliertere Informationen auf der Dokumentenseite.
So schützen Sie den Zweig:
quelle
In Git selbst können Sie den "Pre-Receive" -Hook auf dem Server verwenden, um das Schreiben in einem Zweig an einen Benutzer zu schützen.
Mit diesem Hook können Sie Ihre Einschränkungsrichtlinien für jede Datei im Push anwenden.
Hier finden Sie ein Beispiel.
quelle