Zum Inhalt springen

Git Rollback: Unterschied zwischen den Versionen

Aus Home Wiki
Die Seite wurde neu angelegt: „= Git Rollback = Diese Anleitung zeigt, wie du eine Datei oder dein gesamtes Docker-Compose-Repository in Gitea auf einen alten Commit zurücksetzt. == 1️⃣ Alte Version finden == Zuerst musst du den Commit finden, auf den du zurück willst: <pre class="dynamic-code"> cd /pfad/zu/deinem/repo git log --oneline </pre> --oneline zeigt die Commit-Historie kompakt an. Du siehst dann z. B.: <pre class="static-code"> a1b2c3d Fix docker-compose typ…“
 
Keine Bearbeitungszusammenfassung
 
(4 dazwischenliegende Versionen von einem anderen Benutzer werden nicht angezeigt)
Zeile 1: Zeile 1:
= Git Rollback =
Diese Anleitung beschreibt, wie du den Speicherverbrauch deiner Docker-Ordner (am Beispiel Jellyfin) analysierst und Konflikte mit belegten Ports (z. B. Port 80) löst.


Diese Anleitung zeigt, wie du eine Datei oder dein gesamtes Docker-Compose-Repository in [[Gitea]] auf einen alten Commit zurücksetzt.
== 📂 Speicherverbrauch analysieren ==


== 1️⃣ Alte Version finden ==
=== 1️⃣ Gesamten Speicherverbrauch der Ordner sehen ===
Wechsle zuerst in dein Verzeichnis:
<pre class="static-code">
cd /home/robin/docker/jellyfin
du -sh *
</pre>


Zuerst musst du den Commit finden, auf den du zurück willst:
* '''du''': Disk Usage
* '''-s''': nur Summen pro Ordner
* '''-h''': "human readable" (MB/GB)


<pre class="dynamic-code"> cd /pfad/zu/deinem/repo git log --oneline </pre>
Beispiel-Ausgabe:
<pre class="static-code">
config      12G
cache      18G
data        15G
logs        1G
</pre>


--oneline zeigt die Commit-Historie kompakt an. Du siehst dann z. B.:
=== 2️⃣ Mehr Details (sortiert nach Größe) ===
Um direkt die größten "Speicherfresser" oben zu sehen:
<pre class="static-code">
du -h --max-depth=1 | sort -hr
</pre>


<pre class="static-code"> a1b2c3d Fix docker-compose typo e4f5g6h Add new service 1234abc Alte funktionierende Version </pre>
* '''--max-depth=1''': zeigt nur die direkte Ebene der Unterordner.
* '''sort -hr''': sortiert numerisch und in lesbarem Format absteigend.


Merke dir die Commit-ID (die ersten 7 Zeichen reichen in der Regel), z. B. 1234abc.
=== 3️⃣ Optional: Tiefer in Unterordner eintauchen ===
Wenn du z. B. nur den Inhalt des Cache-Ordners prüfen willst:
<pre class="static-code">
du -h --max-depth=1 ./cache | sort -hr
</pre>


== 2️⃣ Auf einen alten Commit zurücksetzen ==
---


=== Variante A: Nur lokal die Datei zurücksetzen ===
== 🔌 Port-Konflikte lösen (z. B. Port 80) ==


Wenn du nur eine bestimmte Datei zurücksetzen willst:
Wenn ein Container nicht startet, weil ein Port bereits belegt ist, folge diesen Schritten:


<pre class="dynamic-code"> git checkout 1234abc -- pfad/zur/datei </pre>
=== 1️⃣ Prüfen, welcher Prozess den Port nutzt ===
Führe einen dieser Befehle aus:
<pre class="static-code">
sudo lsof -i :80
# ODER
sudo netstat -tulpn | grep :80
</pre>


Damit wird die Datei aus dem alten Commit geholt. Danach committen und pushen:
Du erhältst eine Anzeige des Prozesses (z. B. nginx oder apache), der den Port blockiert.


<pre class="dynamic-code"> git add pfad/zur/datei git commit -m "Rollback der Datei auf alten Stand" git push origin main </pre>
=== 2️⃣ Den störenden Prozess stoppen ===
Falls der Dienst nicht benötigt wird:
<pre class="static-code">
sudo systemctl stop nginx
# ODER (für Apache)
sudo systemctl stop apache2
</pre>


Tipp: Ersetze main durch den Branch, auf dem du arbeitest.
Falls ein anderer Docker-Container schuld ist:
<pre class="static-code">
docker ps
docker stop <container_id>
</pre>


=== Variante B: Gesamtes Repository auf alten Stand zurücksetzen ===
=== 3️⃣ Alternativ: Port in Docker ändern ===
Wenn du beide Dienste parallel nutzen willst, ändere den Host-Port in deiner <nowiki>docker-compose.yml</nowiki>:
<pre class="static-code">
ports:
  - "8080:80"
</pre>
''Der Container ist dann extern über Port 8080 erreichbar.''


Wenn du alles wieder so haben willst wie in einem alten Commit:
=== 4️⃣ Container neu starten ===
 
Sobald der Port frei oder geändert ist, starte die Umgebung neu:
<pre class="dynamic-code"> git reset --hard 1234abc git push origin main --force </pre>
<pre class="static-code">
 
docker compose up -d
⚠️ Achtung: Alles, was seit diesem Commit lokal verändert wurde, geht verloren! Das --force ist nötig, weil die Historie zurückgesetzt wird.
</pre>
 
=== Variante C: Saubere Alternative – neuen Branch erstellen ===
 
Wenn du nicht die Hauptgeschichte zerstören willst, kannst du einen neuen Branch vom alten Commit erstellen:
 
<pre class="dynamic-code"> git checkout -b rollback-branch 1234abc git push origin rollback-branch </pre>
 
Dann kannst du in [[Gitea]] prüfen, ob alles passt, und den Branch ggf. wieder zusammenführen.


== 💡 Hinweis ==
== 💡 Hinweis ==
 
Die Befehle für den Speicherverbrauch lassen sich auf jedes beliebige Verzeichnis anwenden, nicht nur auf Jellyfin. Es ist ratsam, regelmäßig die '''logs''' und den '''cache''' zu prüfen, da diese oft unbemerkt anwachsen.
Wenn du nur eine einzelne Docker-Compose-Datei zurücksetzen willst, ist Variante A am saubersten – kein Force-Push nötig, kein Risiko für den Hauptbranch.

Aktuelle Version vom 17. Februar 2026, 21:50 Uhr

Diese Anleitung beschreibt, wie du den Speicherverbrauch deiner Docker-Ordner (am Beispiel Jellyfin) analysierst und Konflikte mit belegten Ports (z. B. Port 80) löst.

📂 Speicherverbrauch analysieren

1️⃣ Gesamten Speicherverbrauch der Ordner sehen

Wechsle zuerst in dein Verzeichnis:

cd /home/robin/docker/jellyfin
du -sh *
  • du: Disk Usage
  • -s: nur Summen pro Ordner
  • -h: "human readable" (MB/GB)

Beispiel-Ausgabe:

config      12G
cache       18G
data        15G
logs        1G

2️⃣ Mehr Details (sortiert nach Größe)

Um direkt die größten "Speicherfresser" oben zu sehen:

du -h --max-depth=1 | sort -hr
  • --max-depth=1: zeigt nur die direkte Ebene der Unterordner.
  • sort -hr: sortiert numerisch und in lesbarem Format absteigend.

3️⃣ Optional: Tiefer in Unterordner eintauchen

Wenn du z. B. nur den Inhalt des Cache-Ordners prüfen willst:

du -h --max-depth=1 ./cache | sort -hr

---

🔌 Port-Konflikte lösen (z. B. Port 80)

Wenn ein Container nicht startet, weil ein Port bereits belegt ist, folge diesen Schritten:

1️⃣ Prüfen, welcher Prozess den Port nutzt

Führe einen dieser Befehle aus:

sudo lsof -i :80
# ODER
sudo netstat -tulpn | grep :80

Du erhältst eine Anzeige des Prozesses (z. B. nginx oder apache), der den Port blockiert.

2️⃣ Den störenden Prozess stoppen

Falls der Dienst nicht benötigt wird:

sudo systemctl stop nginx
# ODER (für Apache)
sudo systemctl stop apache2

Falls ein anderer Docker-Container schuld ist:

docker ps
docker stop <container_id>

3️⃣ Alternativ: Port in Docker ändern

Wenn du beide Dienste parallel nutzen willst, ändere den Host-Port in deiner docker-compose.yml:

ports:
  - "8080:80"

Der Container ist dann extern über Port 8080 erreichbar.

4️⃣ Container neu starten

Sobald der Port frei oder geändert ist, starte die Umgebung neu:

docker compose up -d

💡 Hinweis

Die Befehle für den Speicherverbrauch lassen sich auf jedes beliebige Verzeichnis anwenden, nicht nur auf Jellyfin. Es ist ratsam, regelmäßig die logs und den cache zu prüfen, da diese oft unbemerkt anwachsen.