Update 03_Commits.md
parent
48b4110be9
commit
da8da53ba3
|
|
@ -1,15 +1,95 @@
|
|||
# Commits
|
||||
|
||||
### Was ist ein Commit?
|
||||
## Was ist ein Commit?
|
||||
|
||||
Ein **Commit** ist ein Schnappschuss des Projekts zu einem bestimmten Zeitpunkt. Er speichert den aktuellen Stand der getrackten Dateien und ermöglicht so eine strukturierte Versionshistorie.
|
||||
Ein **Commit** ist ein Schnappschuss deines Projekts zu einem bestimmten Zeitpunkt. Er speichert den aktuellen Stand der getrackten Dateien und sorgt für eine nachvollziehbare Versionshistorie.
|
||||
|
||||
**Ein Commit enthält:**
|
||||
- Den Zustand der getrackten Dateien
|
||||
- Eine Commit-Message zur Beschreibung der Änderung
|
||||
- Einen eindeutigen Hash (zur Identifikation)
|
||||
- Informationen über den Autor (Name, E-Mail, Zeitstempel)
|
||||
- Infos über den Autor (Name, E-Mail, Zeitstempel)
|
||||
|
||||
> [!IMPORTANT]
|
||||
> **Hinweis:** Git speichert bei Commits nicht jedes Mal alle Dateien neu, sondern nur die Unterschiede (Diffs) zum vorherigen Zustand. \
|
||||
> Das sorgt für Effizienz und Schnelligkeit.
|
||||
> Git speichert bei Commits nicht jedes Mal alle Dateien komplett neu, sondern nur die Änderungen (Diffs) zum vorherigen Zustand. \
|
||||
> Das macht das Ganze effizient und schnell.
|
||||
|
||||
## Warum Commits?
|
||||
|
||||
Mit Commits kannst du:
|
||||
- Änderungen nachvollziehen („Was wurde wann geändert und warum?“)
|
||||
- Fehler zurückverfolgen und frühere Versionen wiederherstellen
|
||||
- Änderungen rückgängig machen, ohne alles manuell löschen zu müssen
|
||||
|
||||
> [!TIP]
|
||||
> Commits sind wie Checkpoints in nem Game: Wenn was schiefläuft, springst du einfach zu einem stabilen Zustand zurück.
|
||||
|
||||
## Änderungen tracken
|
||||
|
||||
Git funktioniert nicht von allein – du entscheidest selbst, welche Änderungen wichtig sind und welche ignoriert werden sollen. Dafür gibt’s das sogenannte **Staging Area-System**.
|
||||
|
||||
Eine Datei in deinem Projekt kann drei Zustände haben:
|
||||
- **Untracked:** Git kennt die Datei noch nicht.
|
||||
- **Staged:** Die Datei wurde ausgewählt („zum Commit vorgemerkt“).
|
||||
- **Committed:** Die Datei ist Teil eines Snapshots im Repository – also dauerhaft gespeichert.
|
||||
|
||||
## Die Staging Area
|
||||
|
||||
Zwischen deinem Arbeitsverzeichnis und dem Repository liegt die **Staging Area**. Sie ist wie ne Zwischenablage für alles, was beim nächsten Commit dabei sein soll.
|
||||
|
||||
Alles auf einmal stagen:
|
||||
```bash
|
||||
git add .
|
||||
```
|
||||
|
||||
Nur bestimmte Dateien stagen:
|
||||
```bash
|
||||
git add <dateiname>
|
||||
```
|
||||
|
||||
> [!TIP]
|
||||
> Bevor du anfängst zu stagen, immer erstmal die neuesten Änderungen vom Remote holen: `git pull`
|
||||
|
||||
## Commit erstellen
|
||||
|
||||
Ein Commit speichert die gestagten Änderungen dauerhaft im lokalen Repository. Befehl:
|
||||
|
||||
```bash
|
||||
git commit -m "Kurze Commit-Nachricht"
|
||||
```
|
||||
|
||||
Die Message sollte kurz und klar sagen, was geändert wurde. Beispiel:
|
||||
|
||||
```bash
|
||||
git commit -m "Fix: Speicherleck im Audio-Buffer behoben"
|
||||
```
|
||||
|
||||
## Commit pushen
|
||||
|
||||
Ein Commit ist erstmal nur lokal. Um ihn ins Remote-Repo (z. B. GitHub) zu pushen:
|
||||
|
||||
```bash
|
||||
git push
|
||||
```
|
||||
|
||||
Wenn du nen neuen Branch pushst oder ihn explizit setzen willst:
|
||||
|
||||
```bash
|
||||
git push -u origin <branchname>
|
||||
```
|
||||
|
||||
## Änderungen pullen
|
||||
|
||||
Wenn du die neuesten Änderungen aus dem Remote-Repository holen willst:
|
||||
|
||||
```bash
|
||||
git pull
|
||||
```
|
||||
|
||||
Das zieht die neuesten Commits vom Remote (meist `origin`) und merged sie in deinen aktuellen Branch.
|
||||
|
||||
Von einem bestimmten Remote oder Branch:
|
||||
|
||||
```bash
|
||||
git pull origin <branchname>
|
||||
```
|
||||
|
|
|
|||
Loading…
Reference in New Issue