Git ist ein reines SCM und kein Mischmasch wie SVN. SVN ist zentral und daher ist auch eine vereinfachte Benutzerverwaltung gleich mit an Bord, die braucht Git aber nicht, das Konzept dahinter war nämlich ein völlig anderes. Git wird im Normalfall über diese Protokolle verwendet: Git, SSH. Über Git kann man nur klonen, aber nicht pushen. Über SSH sind die nötigen Dateirechte erforderlich und ein SSH-Zugang, sonst geht da auch nix. Damit wird dann auch klar, wie Git mit Rechten umgeht. Torvalds hat es im Google Tech Talk sehr gut deutlich gemacht und er ist auch der Erfinder von Git, auch wenn er nicht mehr aktiv an dem Projekt beteiligt ist (frei übersetzt, kann mich da gerade nämlich nicht genau dran erinnern): “Ich vertraue niemandem! Und jeder, der ein Sicherheitskonzept umgesetzt hat, das anders funktioniert, hat kein Sicherheitskonzept umgesetzt, sondern Sche!ße!” Naja, einige von uns kennen Torvalds und seine Einstellung und sei sie manchmal noch so krass, aber er hat recht. Jeder kann mein Repository klonen wie er lustig ist und in seinem Klon machen, was er will, interessiert niemanden. Will er die Änderungen ins Original einspielen, hat er diese nicht zu pushen, sondern mich zu bitten, dass ich sie mir von ihm ziehe, er muss also ein Pull-Request an mich absetzen. Warum? Ganz einfach, weil ich ihm nicht vertraue und sogar wenn ein Pull-Request abgesetzt wurde, wenn ich es nicht akzeptiere oder annehmen will, dann ist das halt so und nicht mein Problem. So und nicht anders funktioniert das System hinter Git. Vertraue grundsätzlich niemandem und wenn jemand was von einem will, dann soll er fragen und bitte sagen! Mit Gitolite und Co kam eben die Möglichkeit hinzu eine Benutzerverrechteverwaltung für Git-Repositories umzusetzen bzw. einzurichten, damit man auf anderem Wege Schreibrechte vergeben kann, ohne das System mit zusätzlichen Benutzern zumüllen zu müssen und an den Dateirechten rumfummeln zu müssen. Um diese aber nutzen zu können, muss man dann über das jeweilige System, also Gitolite, auf die Repositories zugreifen und nicht mehr direkt, weil sonst die Rechteverwaltung von Gitolite nicht greifen würde.
Wer keine Lust hat Gitolite einzurichten oder zu doof dafür ist, der kann auch gerne GitLab einrichten. Das ist ein GitHub-Klon, der ursprünglich für private Repositories gedacht war und eigentlich auch noch immer ist, aber inzwischen kann man auch public Repositories einrichten. Sieht aus wie GitHub und bietet sehr viele ähnliche oder sogar identische Features und ist klasse.
Nochmal, Git ist zur reinen Versionierung von Dateien, in erster Linie natürlich von Source-Files, gedacht und übergibt oder besser überlässt das Problem mit den Benutzerrechten der einzigen Instanz, die dafür verantwortlich ist, nämlich dem Besitzer. Es greift da nicht ein und funkt auch sonst nicht dazwischen, es erlaubt über das Git-Protokoll zu klonen, verbietet aber das Pushen (Sicherheitsmerkmal) und für alle anderen Protokolle ist der Besitzer des Repositories verantwortlich und ist dann eben selbst schuld, aber niemals Git.