Zum Inhalt springen

Git befehle: Unterschied zwischen den Versionen

Aus Home Wiki
Keine Bearbeitungszusammenfassung
Zeile 1: Zeile 1:
= Git – Docker Services versionieren =
= Git – Docker Services versionieren =


== 1. Prüfen ob Dateien ignoriert werden ==
Diese Anleitung beschreibt den Workflow, um Konfigurationsdateien von Docker-Services sicher in einem Git-Repository (z. B. Gitea) zu versionieren.


Überprüfen, ob eine `.gitignore` bestimmte Dateien ausschließt:
== 1. Vorbereitung: Ignorierte Dateien prüfen ==
Bevor Dateien hinzugefügt werden, muss sichergestellt werden, dass die `.gitignore` den Upload nicht blockiert.


<syntaxhighlight lang="bash">
<pre class="dynamic-code">
# Wechsel in das Verzeichnis des Services
cd ~/docker/{{folder}}
 
# Prüfung der Ignorier-Regeln
cat .gitignore
cat .gitignore
</syntaxhighlight>
</pre>
 
Typische problematische Einträge:


<syntaxhighlight lang="bash">
'''Häufige Blocker in der .gitignore:'''
config/
* `config/` (ignoriert den gesamten Ordner)
*.yaml
* `*.yaml` oder `*.yml` (ignoriert alle Konfigurationsdateien)
*.yml
</syntaxhighlight>


Wenn solche Regeln existieren, werden die Dateien nicht versioniert.
> '''Hinweis:''' Falls eine Datei ignoriert wird, die du dennoch sichern willst, musst du die `.gitignore` anpassen oder den Befehl `git add -f` (force) nutzen.


---
---


== 2. Bestimmte Dateien zum Repository hinzufügen ==
== 2. Dateien und Ordner zum Repository hinzufügen ==
Wähle die passende Methode, um deine Konfigurationen für den Commit vorzubereiten.


Beispiel (Homepage):
=== Variante A: Einzelne Dateien oder Ordner ===
Ideal für gezieltes Hinzufügen von Konfigurationsdateien.
<pre class="dynamic-code">
# Einzelne Dateien hinzufügen
git add {{folder}}/config/settings.yaml
git add {{folder}}/config/services.yaml


Pfad:
# ODER: Ganzen Ordner rekursiv hinzufügen
~/docker/homepage
git add {{folder}}/config/
</pre>


Gewünschte Dateien:
=== Variante B: Alles im aktuellen Verzeichnis ===
- homepage/config/settings.yaml
Um alle Änderungen im Projektordner gleichzeitig zu erfassen:
- homepage/config/services.yaml
<pre class="static-code">
git add .
</pre>


Einzeln hinzufügen:
---


<syntaxhighlight lang="bash">
== 3. Status prüfen & Commit erstellen ==
git add homepage/config/settings.yaml
Vor dem Speichern solltest du immer prüfen, was im "Staging"-Bereich gelandet ist, um keine Passwörter versehentlich hochzuladen.
git add homepage/config/services.yaml
</syntaxhighlight>


Oder gemeinsam:
<pre class="dynamic-code">
# Prüfung der vorgemerkten Änderungen
git status


<syntaxhighlight lang="bash">
# Änderungen lokal speichern
git add homepage/config/settings.yaml homepage/config/services.yaml
git commit -m "Update config for {{folder}}"
</syntaxhighlight>
</pre>
 
 
Git kann ganze Ordner rekursiv hinzufügen.
 
Du hast aktuell einzelne Dateien mit:
 
git add homepage/config/settings.yaml
git add homepage/config/services.yaml
 
🔹 Ganzer Ordner rekursiv
 
Wenn du z. B. den gesamten Ordner homepage/config/ hinzufügen willst:
 
git add homepage/config/
 
 
Git wird dann alle Dateien und Unterordner in diesem Pfad aufnehmen.
 
Git ignoriert automatisch Dateien, die in .gitignore stehen.
 
Unterordner werden rekursiv durchlaufen.
---
 
== 3. Commit erstellen ==
 
<syntaxhighlight lang="bash">
git commit -m "Add homepage settings and services config"
</syntaxhighlight>


---
---


== 4. Änderungen zu Gitea pushen ==
== 4. Änderungen zu Gitea übertragen (Push) ==
Um die lokalen Commits auf den Server hochzuladen:


<syntaxhighlight lang="bash">
<pre class="static-code">
git push
git push
</syntaxhighlight>
</pre>


---
---


== 5. Kompletten Ordner hinzufügen ==
== 5. Repository-Informationen & Analyse ==
 
Hier findest du nützliche Befehle, um die Verknüpfung zu deinem Gitea-Server zu prüfen.
Alles im aktuellen Verzeichnis hinzufügen:
 
<syntaxhighlight lang="bash">
git add .
</syntaxhighlight>
 
Vorher prüfen, was hinzugefügt wird:


<syntaxhighlight lang="bash">
<pre class="dynamic-code">
git status
# Welches Remote-Repository wird verwendet?
</syntaxhighlight>
 
---
 
= Git Repository prüfen =
 
== Welches Remote-Repository wird verwendet? ==
 
<syntaxhighlight lang="bash">
git remote -v
git remote -v
</syntaxhighlight>
Beispiel:
<syntaxhighlight lang="bash">
origin  http://192.168.2.10:3000/saya/homepage.git (fetch)
origin  http://192.168.2.10:3000/saya/homepage.git (push)
</syntaxhighlight>
Zeigt, wohin gepusht wird (z. B. Gitea).
---
== Detailinformationen zum Remote ==


<syntaxhighlight lang="bash">
# Detailinformationen (Tracking, Default-Branch, Push-URL)
git remote show origin
git remote show origin
</syntaxhighlight>
Zeigt:
- Tracking-Branch
- Default-Branch
- Push-URL
---


== Aktuellen Branch anzeigen ==
# Aktuellen Branch anzeigen
 
<syntaxhighlight lang="bash">
git branch
git branch
</syntaxhighlight>


Der aktive Branch hat ein `*`.
# Nur die Remote-URL aus der Konfiguration auslesen
 
git config --get remote.origin.url
Alternativ:
</pre>
 
<syntaxhighlight lang="bash">
git status
</syntaxhighlight>


---
---


== Gesamte Git-Konfiguration anzeigen ==
== Best Practices für Docker-Services ==
 
<syntaxhighlight lang="bash">
git config --list
</syntaxhighlight>
 
Nur Remote-URL anzeigen:
 
<syntaxhighlight lang="bash">
git config --get remote.origin.url
</syntaxhighlight>
 
---


= Empfehlung für Docker-Services =
Um das Repository sauber zu halten, sollten nur relevante Dateien versioniert werden.


Versionieren:
{| class="wikitable"
- docker-compose.yml
! Versionieren (Ja) !! NICHT versionieren (Nein)
- *.yaml / *.yml Konfigurationsdateien
|-
- .env (ohne Passwörter)
| `docker-compose.yml` || Logs (`*.log`)
- Eigene Scripts
|-
| `*.yaml` / `*.yml` Konfigurationen || Datenbank-Verzeichnisse (z.B. `mysql/`, `db/`)
|-
| `.env.example` (Templates) || `.env` (mit echten Passwörtern/Secrets!)
|-
| Eigene Shell-Scripte (`*.sh`) || Cache-Daten & Laufzeitdaten
|-
| Dockerfiles || Media-Dateien, Bilder, Backups
|}


Nicht versionieren:
'''Tipp zur Einbauposition (Mounting Position):'''
- Logs
Wenn du Volumes in deiner `docker-compose.yml` verschiebst oder Pfade änderst, stelle sicher, dass die neuen Pfade auch von Git erfasst werden. Nutze dazu oben einfach die Variable `{{folder}}`, um die Befehle schnell für andere Container anzupassen.
- Datenbanken
- Cache
- Laufzeitdaten aus Volumes
- Media-Dateien

Version vom 15. Februar 2026, 16:04 Uhr

Git – Docker Services versionieren

Diese Anleitung beschreibt den Workflow, um Konfigurationsdateien von Docker-Services sicher in einem Git-Repository (z. B. Gitea) zu versionieren.

1. Vorbereitung: Ignorierte Dateien prüfen

Bevor Dateien hinzugefügt werden, muss sichergestellt werden, dass die `.gitignore` den Upload nicht blockiert.

# Wechsel in das Verzeichnis des Services
cd ~/docker/{{folder}}

# Prüfung der Ignorier-Regeln
cat .gitignore

Häufige Blocker in der .gitignore:

  • `config/` (ignoriert den gesamten Ordner)
  • `*.yaml` oder `*.yml` (ignoriert alle Konfigurationsdateien)

> Hinweis: Falls eine Datei ignoriert wird, die du dennoch sichern willst, musst du die `.gitignore` anpassen oder den Befehl `git add -f` (force) nutzen.

---

2. Dateien und Ordner zum Repository hinzufügen

Wähle die passende Methode, um deine Konfigurationen für den Commit vorzubereiten.

Variante A: Einzelne Dateien oder Ordner

Ideal für gezieltes Hinzufügen von Konfigurationsdateien.

# Einzelne Dateien hinzufügen
git add {{folder}}/config/settings.yaml
git add {{folder}}/config/services.yaml

# ODER: Ganzen Ordner rekursiv hinzufügen
git add {{folder}}/config/

Variante B: Alles im aktuellen Verzeichnis

Um alle Änderungen im Projektordner gleichzeitig zu erfassen:

git add .

---

3. Status prüfen & Commit erstellen

Vor dem Speichern solltest du immer prüfen, was im "Staging"-Bereich gelandet ist, um keine Passwörter versehentlich hochzuladen.

# Prüfung der vorgemerkten Änderungen
git status

# Änderungen lokal speichern
git commit -m "Update config for {{folder}}"

---

4. Änderungen zu Gitea übertragen (Push)

Um die lokalen Commits auf den Server hochzuladen:

git push

---

5. Repository-Informationen & Analyse

Hier findest du nützliche Befehle, um die Verknüpfung zu deinem Gitea-Server zu prüfen.

# Welches Remote-Repository wird verwendet?
git remote -v

# Detailinformationen (Tracking, Default-Branch, Push-URL)
git remote show origin

# Aktuellen Branch anzeigen
git branch

# Nur die Remote-URL aus der Konfiguration auslesen
git config --get remote.origin.url

---

Best Practices für Docker-Services

Um das Repository sauber zu halten, sollten nur relevante Dateien versioniert werden.

Versionieren (Ja) NICHT versionieren (Nein)
`docker-compose.yml` Logs (`*.log`)
`*.yaml` / `*.yml` Konfigurationen Datenbank-Verzeichnisse (z.B. `mysql/`, `db/`)
`.env.example` (Templates) `.env` (mit echten Passwörtern/Secrets!)
Eigene Shell-Scripte (`*.sh`) Cache-Daten & Laufzeitdaten
Dockerfiles Media-Dateien, Bilder, Backups

Tipp zur Einbauposition (Mounting Position): Wenn du Volumes in deiner `docker-compose.yml` verschiebst oder Pfade änderst, stelle sicher, dass die neuen Pfade auch von Git erfasst werden. Nutze dazu oben einfach die Variable `Vorlage:Folder`, um die Befehle schnell für andere Container anzupassen.