Zum Inhalt springen

Git Rollback: Unterschied zwischen den Versionen

Aus Home Wiki
Keine Bearbeitungszusammenfassung
 
Zeile 1: Zeile 1:
Diese Anleitung zeigt, wie du eine Datei oder dein gesamtes Docker-Compose-Repository in [[Gitea]] auf einen alten Commit zurücksetzt.
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.


== 1️⃣ Alte Version finden ==
== 📂 Speicherverbrauch analysieren ==


Zuerst musst du den Commit finden, auf den du zurück willst:
=== 1️⃣ Gesamten Speicherverbrauch der Ordner sehen ===
Wechsle zuerst in dein Verzeichnis:
<pre class="static-code">
cd /home/robin/docker/jellyfin
du -sh *
</pre>


<pre class="dynamic-code"> cd /docker/{{Ordner}} git log --oneline </pre>
* '''du''': Disk Usage
* '''-s''': nur Summen pro Ordner
* '''-h''': "human readable" (MB/GB)


--oneline zeigt die Commit-Historie kompakt an. Du siehst dann z. B.:
Beispiel-Ausgabe:
<pre class="static-code">
config      12G
cache      18G
data        15G
logs        1G
</pre>


<pre class="static-code"> a1b2c3d Fix docker-compose typo e4f5g6h Add new service 1234abc Alte funktionierende Version </pre>
=== 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>


Merke dir die Commit-ID (die ersten 7 Zeichen reichen in der Regel), z. B. 1234abc.
* '''--max-depth=1''': zeigt nur die direkte Ebene der Unterordner.
* '''sort -hr''': sortiert numerisch und in lesbarem Format absteigend.


== 2️⃣ Auf einen alten Commit zurücksetzen ==
=== 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>


=== Variante A: Nur lokal die Datei zurücksetzen ===
---


Wenn du nur eine bestimmte Datei zurücksetzen willst:
== 🔌 Port-Konflikte lösen (z. B. Port 80) ==


<pre class="dynamic-code"> git checkout {{Version}} -- /{{Dateipfad}} </pre>
Wenn ein Container nicht startet, weil ein Port bereits belegt ist, folge diesen Schritten:


Damit wird die Datei aus dem alten Commit geholt. Danach committen und pushen:
=== 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>


<pre class="dynamic-code"> git add /{{Dateipfad}} git commit -m "Rollback der Datei auf alten Stand" git push origin main </pre>
Du erhältst eine Anzeige des Prozesses (z. B. nginx oder apache), der den Port blockiert.


Tipp: Ersetze main durch den Branch, auf dem du arbeitest.
=== 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>


=== Variante B: Gesamtes Repository auf alten Stand zurücksetzen ===
Falls ein anderer Docker-Container schuld ist:
<pre class="static-code">
docker ps
docker stop <container_id>
</pre>


Wenn du alles wieder so haben willst wie in einem alten Commit:
=== 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.''


<pre class="dynamic-code"> git reset --hard {{Version}} git push origin main --force </pre>
=== 4️⃣ Container neu starten ===
 
Sobald der Port frei oder geändert ist, starte die Umgebung neu:
⚠️ Achtung: Alles, was seit diesem Commit lokal verändert wurde, geht verloren! Das --force ist nötig, weil die Historie zurückgesetzt wird.
<pre class="static-code">
 
docker compose up -d
=== Variante C: Saubere Alternative – neuen Branch erstellen ===
</pre>
 
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 {{Version}} 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.