it-swarm.com.de

Verhindern, dass Sie GitHub als Master verwenden?

Mit GitHub können Sie Ihr Repository so konfigurieren, dass Benutzer Push nicht zu master erzwingen können. Ich hoffe, es so zu machen, dass die einzige Möglichkeit, Commits für Master hinzuzufügen, die GitHub-Pull-Request-Benutzeroberfläche ist.

7
joshlf

Sie können Zweigbeschränkungen aktivieren und entscheiden, wer (in Bezug auf Benutzer und Teams der Organisation) Push ausführen darf.

https://help.github.com/articles/about-branch-restrictions/

«Hinweis: Wenn das Kontrollkästchen" Administratoren einbeziehen "aktiviert ist und Sie erforderliche Statusprüfungen für die Zweigstelle aktiviert haben und diese fehlschlagen, schlägt der Versuch, Änderungen an die Basisverzweigung zu verschieben, unabhängig vom Berechtigungsstatus eines Benutzers oder Teams fehl.»

2
phd

Seit der ursprünglichen Frage/Antwort hat Github der Benutzeroberfläche für eingeschränkte Zweige eine neue Option hinzugefügt, mit der Sie diese einrichten können.

Pull-Request-Überprüfungen vor dem Zusammenführen erforderlich Wenn diese Option aktiviert ist, müssen alle Festschreibungen an eine nicht geschützte Zweigstelle gesendet und über eine Pull-Anforderung mit der erforderlichen Anzahl genehmigender Überprüfungen und ohne angeforderte Änderungen erfolgen, bevor sie zusammengeführt werden können Ein Zweig, der dieser Regel entspricht.

1
Cory

Die aktuell akzeptierte Antwort ist tatsächlich korrekt, aber wenn Sie Eigentümer einer Organisation sind oder Administratorrechte haben, was der Fall ist, wenn Sie das Repo erstellt haben, können Sie immer noch Push an geschützte Zweige senden. Aus der Github-Dokumentation unter https://help.github.com/de/articles/about-branch-restrictions :

Organisationsinhaber und Personen mit Administratorrechten für ein Repository können immer zu einer geschützten Zweigstelle pushen.

Für jeden anderen Mitarbeitertyp gilt git Push wird versagen.

Wenn Sie das Pushing von qt all wirklich deaktivieren möchten, müssen Sie dies entweder lokal einrichten, indem Sie ein ungültiges pushRemote für einen Zweig konfigurieren, wie oben erwähnt:

git config branch.master.pushRemote no_Push

oder Sie können einen Pre-Push-Hook wie hier gezeigt einrichten: https://Gist.github.com/vlucas/8009a5edadf8d0ff74

1
Ignacio Arces

Direktes Drücken auf den Remote-Master wird abgelehnt, wenn Statusprüfungen aktiviert sind. Dies bedeutet, dass die einzige Möglichkeit zum Hinzufügen von Commits zum Remote-Master das Zusammenführen von Pull-Anforderungen (die die Statusprüfungen bestehen) auf GitHub besteht.

Hier ist mein Testergebnis für die Hauptbranche, die Statusprüfungen erfordert:

  1. Erstellen Sie ein Commit auf dem Master-Zweig auf meinem PC.
  2. Zum Master der Fernbedienung drücken.
  3. Eine Ablehnungsnachricht wird angezeigt. Das Festschreiben wird am Ende nicht auf Remote gestellt.
C:\GitRepo\GitHub\TomoyukiAota\photo-location-map [master ↑1]> git Push
Enumerating objects: 5, done.
Counting objects: 100% (5/5), done.
Delta compression using up to 12 threads
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 305 bytes | 305.00 KiB/s, done.
Total 3 (delta 2), reused 0 (delta 0)
remote: Resolving deltas: 100% (2/2), completed with 2 local objects.
remote: error: GH006: Protected branch update failed for refs/heads/master.
remote: error: 3 of 3 required status checks are expected.
To https://github.com/TomoyukiAota/photo-location-map.git
 ! [remote rejected] master -> master (protected branch hook declined)
error: failed to Push some refs to 'https://github.com/TomoyukiAota/photo-location-map.git'
C:\GitRepo\GitHub\TomoyukiAota\photo-location-map [master ↑1]>
0
Tomoyuki Aota