Git-Repo spiegeln

Für meine Smarthome-Projekte greife ich gerne auf Open-Source-Projekte zurück. Da diese Projekte je nach Größe und Beliebtheit gelegentlich gelöscht werden können, wäre eine Weiterentwicklung, Aktualisierung oder Neukonfiguration ohne Zugriff auf das ursprüngliche Repository unmöglich. Deshalb kopiere ich die entsprechenden Repositories in mein eigenes lokales Git. In einem separaten Branch halte ich meine persönlichen Konfigurationen und Anpassungen fest, wie Standardwerte, Zertifikate und Zugangsdaten. Ich baue die Projekte alle ausschließlich auf diesem (meinem) Branch in meinem Repository. Um sicherzustellen, dass mein geklontes Repository aktuell bleibt, synchronisiere ich es regelmäßig mit dem Original-Repository, ohne meine Änderungen versehentlich zurückzuschieben. Wie ich das mache, erkläre ich im Folgenden stichpunktartig am Beispiel von Tasmota.
1 Clonen des Repositories
> git clone https://github.com/arendst/Tasmota.git2 Prüfen der verlinkten Git-Repositories
> git remote -v
origin https://github.com/arendst/Tasmota.git (fetch)
origin https://github.com/arendst/Tasmota.git (push)3 Ändern der “origin” remote URL
> git remote set-url origin http://git.lokal/Tasmota.git4 Neues Remote-Repository hinzufügen
> git remote add upstream https://github.com/arendst/Tasmota.git5 Das Pushen auf dieses Repository deaktivieren
> git config remote.upstream.pushurl "not this direction"6 Prüfen der verlinkten Git-Repositories
> git remote -v
origin http://git.lokal/Tasmota.git (fetch)
origin http://git.lokal/Tasmota.git (push)
upstream https://github.com/arendst/Tasmota.git (fetch)
upstream not this direction (push)7 Meinen master-Branch aktualisieren
> git pull upstream master:master --allow-unrelated-histories8 … und pushen
> git push origin masterNun kann ich den master in meinen Branch mergen, konfigurieren, … zum Schluss muss ich nur noch meinen Branch pushen
> git push origin bc6Titelbild von BÙI VĂN HỒNG PHÚC auf Pixabay



