alaim89
Goto Top

Git Konfiguration Rekursiv vererben

Hallo zusammen,

ich habe folgende Frage,
Gibt es die Möglichkeit eine Git-Konfiguration (.git/config) Rekursiv an die Unterordner weiter zu vererben?

Wie ist es genau gemeint?
Ich erstelle einen Hauptordner mit dem Namen "git_repository_privat". Hier initialisiere ich mit "git init" eine Git Struktur.
Im weiteren erstelle ich unter Ordner mit den Namen "git_help", "git_mermaid", "git_python_drei_backend".

Ich Konfiguriere im Hauptordner (git_repository_privat) die .git/config Datei mit folgenden Parametern,

[user]
name="John Doe"
email="john.doe@gmail.com"

Gilt diese automatisch für folgende Unterordner? -> Ich meine nicht, da ich für jeden unterordner eine neue .git/config datei schreibe.
Reicht das Kopieren der vorliegenden config-Datei in den neuen Unterordner? -> hatte bei mir leider nicht funktioniert auf Anhieb, aber auch nicht weiter getestet
Gibt es einen Parameter der das ermöglicht???

Warum will ich das ganze?
Da ich auf meinem Rechner mit unterschiedlichen Accounts arbeite, würde ich gerne nicht jedes mal eine config datei anpassen oder eine Globale Änderung durchführen müssen. Vielleicht ist der Umgang mit Git von meiner Seite auch Falsch und jemand kann mir hier weiterhelfen.

Vielen Dank im voraus.

alaim89

Content-ID: 2242496554

Url: https://administrator.de/contentid/2242496554

Ausgedruckt am: 08.11.2024 um 15:11 Uhr

150345
150345 21.03.2022 aktualisiert um 18:59:31 Uhr
Goto Top
Hallo,

geht ganz einfach mit folgenden Befehlen:
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com

Das machst du einmalig für jeden Benutzer.

//Edit: Global beudeut nicht, dass die Befehle für alle Benutzer am System angewendet wird, sondern nur für den aktuell angemeldeten Benutzer. Im Benutzerprofil wird dazu eine .gitconfig Datei erzeugt. Da können dann auch grundsätzlich Einstellungen gesetzt werden, die bei jedem neuen Git Projekt automatisch gesetzt werden.

MfG
alaim89
alaim89 22.03.2022 um 06:46:00 Uhr
Goto Top
Guten Morgen @150345,

Da ich über mehrere Accounts verfüge, würde ich für jeden Account deine Konfiguration umsetzen?
Wie weiß ein neu angelegtes Projekt, das ich User "John Wayne" wäre?
Ist das vllt. in der .gitconfig somit Rekursiv lösbar?

geht ganz einfach mit folgenden Befehlen:
$ git config --global user.name "John Doe"
$ git config --global user.email johndoe@example.com

Danke für deine Rückmeldung face-smile.

Schöne Grüße
150345
150345 22.03.2022 um 09:49:16 Uhr
Goto Top
Wie weiß ein neu angelegtes Projekt, das ich User "John Wayne" wäre?

Indem du dich einfach mit dem User "John Wayne" am System anmeldest?
Wie gesagt, im Benutzerprofil liegt dann die Git Konfigurationsdatei für den Benutzer (.gitconfig), die dann geladen wird.

Oder verstehe ich dich gerade falsch? Dann würde ich mich freuen, wenn du ausführlicher erklären würdest, wie du das mit den verschiedenen Benutzer meinst.
alaim89
alaim89 22.03.2022 um 13:58:15 Uhr
Goto Top
Moin @150345,

mit der Annahme, ich arbeite an 3 verschiedenen Projekten, wofür es unterschiedliche Haupt-Ordner gibt.
Der User am Desktop nennt meldet sich mit dem User -> "andone" an.

Für Projekt 1 arbeite ich als -> "John Doe" "john.doe@gmail.com"
Für Projekt 2 arbeite ich als -> "John Wayne" "john.wayne@hotmail.com"
Für Projekt 3 arbeite ich als -> "Dagobert Duck" "dagobert.duck@outlook.de"

Projekt 1 -> Hauptordner "repository_privat" -> Unterverzeichnisse ....
Projekt 2 -> Hauptordner "repository_arbeit" -> Unterverzeichnisse ....
Projekt 3 -> Hauptordner "repository_kunde" -> Unterverzeichnisse ....

Wenn ich nun in Projekt 1 meine Arbeit fortsetze oder starte soll erkannt werden das "John Doe" hier arbeitet.
Wenn ich in Projekt 2 bin dann "John Wayne" und Projekt 2 "Dagobert Duck".

Das soll aber auch für das anlegen von Unterverzeichnissen gelten.
Projekt 1 -> Main -> "repo_backend" -> git init -> soll automatisch erkennen das es "John Doe" ist.
Projekt 2 -> Main -> "repo_openshift" -> git init -> soll automatisch erkennen das es "John Wayne" ist.

Der Anmeldeuser am PC/Server/notebook ist immer "andone".


Schöne Grüße
137960
137960 22.03.2022 um 14:04:50 Uhr
Goto Top
So wie ich es verstanden habe, wäre der richtige Weg, "git submodule" zu verwenden. Damit hättest Du dann die Unterprojekte als eigenständige Git-Projekte eingebunden.

Nutzt Du keine Submodule, dann werden alle Einstellungen des "Hauptprojekts" an alle Unterverzeichnisse vererbt.

Da die Nutzung von Submodulen eventuell "tricky" sein kann und wenn Du nur mit unterschiedlichen Git-Usern arbeiten willst und sonst nix, dann kannst Du den Ansatz von Brieftaube nutzen und GLOBAL (d.h. für alle Git-Repositories) Username und Mailadresse ändern, bevor Du einen Commit ausführst.

Musst halt nur vor jedem Commit innehalten und überlegen, welcher User gerade aktiv ist ;) Ansonsten ist das eine einfache Lösung.
alaim89
alaim89 22.03.2022 um 19:24:59 Uhr
Goto Top
Hallo @137960,

danke für die Info mit den Submodulen, ist auf jeden fall nochmal ein gutes Mittel für meine mittelfristigen Projekte face-smile.
Nur für dieser Weg nicht dorthin wo ich gerne hin möchte. Mit dem Global setzen gefällt mir nicht wirklich, weil wie du beschrieben hast, muss das vor jedem Commit gesetzt werden face-smile.

Glaube da muss ich nochmal auf Recherche und testen ausweichen, schade.

Vielen Dank nochmal an euch beiden @150345 und @137960 !!!

Schöne Grüße