Inhalt

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.


> git clone https://github.com/arendst/Tasmota.git

> git remote -v
origin  https://github.com/arendst/Tasmota.git (fetch)
origin  https://github.com/arendst/Tasmota.git (push)

> git remote set-url origin http://git.lokal/Tasmota.git

> git remote add upstream https://github.com/arendst/Tasmota.git

> git config remote.upstream.pushurl "not this direction"

> 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)

> git pull upstream master:master --allow-unrelated-histories

> git push origin master

Nun kann ich den master in meinen Branch mergen, konfigurieren, … zum Schluss muss ich nur noch meinen Branch pushen

> git push origin bc6

Titelbild von BÙI VĂN HỒNG PHÚC auf Pixabay