Files
JS/07_git/docs/git-project.md
Philippe Torrel 4875204025 new changes
2026-09-03 09:15:27 +02:00

3.8 KiB

Git Projektanweisung

  1. Projektordner vorbereiten & Git initialisieren: Erstelle das Verzeichnis, wechsle hinein, initialisiere das Repository direkt mit dem Standard-Branch main und stelle sicher, dass kein alter master-Branch existiert.
mkdir project-git
cd project-git
git init -b main

# Prüfung/Bereinigung falls 'master' noch existieren sollte:
git branch -d master 2>/dev/null || true

  1. README.md erstellen & committen: Erstelle die Datei mit der geforderten Überschrift und führe den initialen Commit auf main durch.
echo "# Implementierung eines Workflows" > README.md
git add README.md
git commit -m "docs: add initial README.md"

  1. Feature-Branches anlegen: Erstelle die beiden Branches feature-1 und feature-2 ausgehend vom aktuellen Stand auf main.
git branch feature-1
git branch feature-2

  1. Arbeiten auf feature-1 (2 Commits): Wechsle zu feature-1, erstelle feature1.txt und führe zwei getrennte Commits durch.
git checkout feature-1

# Commit 1
echo "Feature 1: Basis-Funktionalitaet" > feature1.txt
git add feature1.txt
git commit -m "feat: add feature1.txt with base logic"

# Commit 2
echo "Feature 1: Erweiterung" >> feature1.txt
git add feature1.txt
git commit -m "feat: extend feature1.txt functionality"

  1. Arbeiten auf feature-2 (2 Commits): Wechsle zu feature-2, erstelle feature2.txt und führe ebenfalls zwei Commits durch.
git checkout feature-2

# Commit 1
echo "Feature 2: Erste Implementierung" > feature2.txt
git add feature2.txt
git commit -m "feat: add feature2.txt with base logic"

# Commit 2
echo "Feature 2: Erweiterte Logik" >> feature2.txt
git add feature2.txt
git commit -m "feat: extend feature2.txt functionality"
  1. feature-1 mergen & Tag v1.1.0 setzen: Wechsle zurück auf main, führe den Merge für feature-1 durch und tagge den ersten stabilen Zustand.
git checkout main
git merge feature-1 --no-edit
git tag v1.1.0

  1. feature-2 mergen & Tag v1.2.0 setzen: Merge feature-2 in den main-Branch und setze den nächsten Versions-Tag.
git merge feature-2 --no-edit
git tag v1.2.0

  1. Gestagte und ungestagte Änderungen in feature-1 vornehmen: Wechsle zurück zu feature-1. Erzeuge eine gestagte sowie eine ungestagte Änderung und speichere den Status-Dump.
git checkout feature-1

# Gestagte Aenderung:
echo "Aenderung 1 (gestaged)" >> feature1.txt
git add feature1.txt

# Ungestagte Aenderung:
echo "Aenderung 2 (ungestaged)" >> feature1.txt
git add feature1.txt
# Status in Datei schreiben:
git status > status.dump

  1. Änderungen stashen: Sichere alle Änderungen inklusive ungetrackter Dateien (status.dump) im Stash mit der geforderten Beschreibung.
git stash push -u -m "Stash 1: Hotfix needed"

  1. Hotfix-Branch erstellen, fixen & mergen: Zweige vom Tag v1.2.0 ab, erstelle stash.dump, committe diesen Fix und merge alles in main.
# Hotfix-Branch von v1.2.0 erstellen:
git checkout -b hotfix v1.2.0

# Stash-Liste exportieren und committen:
git stash list > stash.dump
git add stash.dump
git commit -m "fix: resolve critical issue via stash inspection"

# In main mergen:
git checkout main
git merge hotfix --no-edit

  1. feature-1 fortsetzen, abschließen & v1.2.1 taggen: Kehre zu feature-1 zurück, hole die Änderungen aus dem Stash, committe sie, merge den Branch in main und setze das finale Tag.
git checkout feature-1
git stash pop

# Alle wiederhergestellten Aenderungen committen:
git add .
git commit -m "feat: complete pending work on feature1"

# In main mergen und taggen:
git checkout main
git merge feature-1 --no-edit
git tag v1.2.1


Zur finalen Überprüfung der Tags und des Graphen:

git tag
git log --oneline --graph --all