Björns Welt
25. Februar 2022

Git

Gepostet am 25. Februar 2022  •  2 Minuten  • 228 Wörter  • Andere Sprachen:  English

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.git
  1. 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)
  1. Ändern der “origin” remote URL
> git remote set-url origin http://git.lokal/Tasmota.git
  1. Neues Remote-Repository hinzufügen
> git remote add upstream https://github.com/arendst/Tasmota.git
  1. Das Pushen auf dieses Repository deaktivieren
> git config remote.upstream.pushurl "not this direction"
  1. 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)
  1. Meinen master-Branch aktualisieren
> git pull upstream master:master --allow-unrelated-histories
  1. … und pushen
> 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

Bildnachweis Banner

Follow me