3.8 KiB
3.8 KiB
Git Projektanweisung
- Projektordner vorbereiten & Git initialisieren:
Erstelle das Verzeichnis, wechsle hinein, initialisiere das Repository direkt mit dem Standard-Branch
mainund stelle sicher, dass kein altermaster-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
- README.md erstellen & committen:
Erstelle die Datei mit der geforderten Überschrift und führe den initialen Commit auf
maindurch.
echo "# Implementierung eines Workflows" > README.md
git add README.md
git commit -m "docs: add initial README.md"
- Feature-Branches anlegen:
Erstelle die beiden Branches
feature-1undfeature-2ausgehend vom aktuellen Stand aufmain.
git branch feature-1
git branch feature-2
- Arbeiten auf feature-1 (2 Commits):
Wechsle zu
feature-1, erstellefeature1.txtund 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"
- Arbeiten auf feature-2 (2 Commits):
Wechsle zu
feature-2, erstellefeature2.txtund 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"
- feature-1 mergen & Tag v1.1.0 setzen:
Wechsle zurück auf
main, führe den Merge fürfeature-1durch und tagge den ersten stabilen Zustand.
git checkout main
git merge feature-1 --no-edit
git tag v1.1.0
- feature-2 mergen & Tag v1.2.0 setzen:
Merge
feature-2in denmain-Branch und setze den nächsten Versions-Tag.
git merge feature-2 --no-edit
git tag v1.2.0
- 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
# Status in Datei schreiben:
git status > status.dump
- Ä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"
- Hotfix-Branch erstellen, fixen & mergen:
Zweige vom Tag
v1.2.0ab, erstellestash.dump, committe diesen Fix und merge alles inmain.
# 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
- feature-1 fortsetzen, abschließen & v1.2.1 taggen:
Kehre zu
feature-1zurück, hole die Änderungen aus dem Stash, committe sie, merge den Branch inmainund 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