Git und seine Einstellungen

Git lässt sich auf viele Weise an die besonderen Bedürfnisse des Entwicklers anpassen. Es wäre jetzt leicht, den üblichen Spruch „der Fantasie sind keine Grenzen gesetzt“ zu verwenden, aber das ist natürlich nicht ganz richtig. Git kann keineswegs alles. Aber was man sicher ohne weiteres sagen kann, ist, dass Git vieles kann.

Git bietet (wie viele andere Systeme ebenfalls) drei Ebenen an, wo Einstellungen gespeichert werden können:

  • systemweit
  • benutzerweit
  • im lokalen Repository
Symbolbild "Fenster"
Symbolbild (Freilichtmuseum Heiligenkirchen)

Blicken wir durch das jeweilige Fenster auf diese Etagen. Systemweit bedeutet, dass alle User und alle Repositories auf diesem Rechner davon profitieren. Solche Einstellungen bieten sich nur dann an, wenn dies auch wirklich gebraucht wird. Der Nutzen ist vielleicht nicht so groß, wie man im ersten Moment denkt, denn heutzutage hat wohl fast jeder Entwickler seinen eigenen Rechner zur Verfügung. Davon abgesehen benötigt man für die Einstellungen auf Systemebene natürlich entsprechende Rechte.

Benutzerweit ist da schon naheliegender. Die Einstellungen auf dieser Ebene betreffen alle Repositories, die der Benutzer bearbeitet. Dies wird üblicherweise Name und eMail-Adresse des Entwicklers enthalten, z.B. so:

[user]
email = chris@juengling-edv.de
name = Christoph Jüngling

Diese Werte werden dann automatisch in allen Repositories dieses Accounts auf die gleiche Weise verwendet.

Lokal bedeutet naheliegenderweise, dass die Einstellung das aktuelle Repository betrifft und nichts anderes. Viele dieser Einstellungen werden von Git selbst vorgenommen, z.B. die Remotes oder die Tracked Branches.

Nebenbei sollte erwähnt werden, dass  ein git clone solche Einstellungen nicht mit kopiert. Wenn der Entwickler sie also braucht, muss er sie entweder von Hand in der Konfigurationsdatei nachtragen oder darüber nachdenken, ob die Einstellung vielleicht doch auf Benutzerebene sinnvoller wäre.

Ebenfalls ist zu erwähnen, dass eine „tiefere“ Einstellung immer Vorrang vor einer „höheren“ hat. So könnte zum Beispiel auf Benutzerebene Name und eMail-Adresse wie oben gesetzt sein, in einem bestimmten Repository wird jedoch eine kundenspezifische Adresse verwendet.

Wo steht was?

Bei den vielen möglichen Einstellungen ist es hilfreich, nachzuschauen, was wo definiert wurde. Dies erledigt der Config-Befehl von Git mit dem Parameter „list“. Ab Git v2.8.0 steht dabei zusätzlich „show-origin“ zur Verfügung, wodurch die Stelle der Definition mit ausgegeben wird.

git config --list --show-origin

Vor Version v2.8 wird leider nur dies funktionieren:

git config --list

Wie wird es definiert?

Auf der Kommandozeile bietet Git mit dem Befehl git config die Möglichkeit, die Einstellungen direkt zu setzen. Wird nur Name und Wert angegeben, erfolgt die Einstellung im lokalen Repository. Für die anderen Stellen ist ein Zusatz erforderlich:

git config --system NAME WERT
git config --global NAME WERT
git config [--local] NAME WERT

Und wie wird es benutzt?

Na, einfach so 🙂

Ähnliche Artikel:

AuthorChristoph Jüngling

Selbständiger Softwareentwickler und Seminarleiter

Kommentar verfassen