HomeAboutContact

Cheat Sheet - Git

Von Yannik Korzikowski
Veröffentlich in Cheat Sheets
02. December 2023
1 min Lesezeit
🇩🇪
Cheat Sheet - Git

Inhalt

01
Einführung
02
Konzept
03
Branch Naming-Convention
04
Commit Messages
05
Befehl: Branch wechseln
06
Befehl: Neuen Branch erstellen
07
Befehl: Git-Log History aufräumen
08
Befehl: Feature Branch auf Main rebasen
09
Befehl: Feature Branch Pushen
10
Befehl: Feature Branch in den Main Branch mergen
11
Entwicklungsumgebung konfigurieren
12
Template: Git Commit Msg
13
Meine lokale Git Konfiguration

Einführung

In diesem Cheat Sheet schreibe ich meinen gewöhnlichen Workflow mit Git auf. Normalerweise nutze ich kein “Mergen”, sodern bevorzuge “Rebasen”. Außerdem benutze ich Feature Branches.

Dieser Cheat-Sheet basiert im wesentlichen auf folgendem Guide sowie meinen persönlichen Erfahrungen: https://www.conventionalcommits.org/en/v1.0.0/

Konzept

Folgende Branches existieren in diesem Cheat-Sheet:

  • main: Main-Branch, auch master genannt
  • feature/xyz: Feature Branch

Branch Naming-Convention

Folgende Präfixe haben sich als hilfreich erwiesen.

  • feat: Ein neus feature
  • fix: Ein bug-fix
  • docs: Änderungen ausschließlich in der Doku
  • style: Änderungen, die nicht die Funktion des Codes ändern (white-space, formatting, missing semi-colons, etc.)
  • refactor: Eine Änderung, die keinen Bug fixxt oder ein neues Feature hinzufügt
  • perf: Eine Code-Änderung die die Performance verbessert (habe ich bisher selten benutzt)
  • test: Fehlende Tests hinzugefügt
  • chore: Build-Prozess, Hilfs-Tools, Libraries wie Generation von Dokumentation oder Sonstiges

Commit Messages

Commit Messages sollten nach folgendem Schema erstellt werden. Beispielsweise für ein Feature mit der Ticketnumer #42

feat(#42): Add new cool stuff
This feature adds the new cool stuff described in the ticket.
  • Hierbei ist die erste Zeile als Überschrift zu verstehen, welche nachher auch gleichzeitig als Abstract in GUI und CI gilt.
  • Gefolgt von einer Leerzeile (diese ist wichtig!)
  • Gefolgt von Freitext
  • Die Überschrift sollte immer einen grammatikalisch korrekten Satz bilden mit dem Satz “If applied, this commit will \<headline>”. In diesem Fall also “If applied, this commit will add new cool stuff”

In einem Projekt habe ich mich des Öfteren nicht an diese Konvention erhalten und einen netten Regenschirm geschenkt bekommen. Grüße gehen raus. \<Hier Regenschirm Foto einfügen>

Befehl: Branch wechseln

git checkout <branch-name>

Befehl: Neuen Branch erstellen

git checkout -b <branch-name>

Befehl: Git-Log History aufräumen

Wo ausführen?: In deinem Feature Branch
Effekt: Dies bereinigt die History im Feature branch (z.B. bei einer großen Anzahl an WIP-Commits)

git rebase -i main

Befehl: Feature Branch auf Main rebasen

Wo ausführen?: In deinem Feature Branch
Effekt?: Dieser Befehl nimmt den aktuellen Main-Branch und fügt die Änderungen darauf an

git pull origin main
git rebase main

Befehl: Feature Branch Pushen

Wo ausführen?: In deinem Feature Branch
Effekt?: Dieser Befehl überschreibt den Remote-Branch mit dem lokalen

WICHTIG Nur auf dem eigenen Branch ausführen, da es die Git-Historie sonst unbrauchbar macht für andere.

git push -f

Befehl: Feature Branch in den Main Branch mergen

Wo ausführen?: Im Main Branch
Effekt: Dieser Befehl merged den Branch in den Main Branch ohne Merge-commit Nachrichten

git merge <feature-branch>

Entwicklungsumgebung konfigurieren

Template: Git Commit Msg

Dieser Snippet kann unter ~/.git/templates/commit-msg abgelegt werden. Somit hat man immer die Formatvorlage für Commit-Messages im Blick.

HINWEIS: Die leeren Linien sind wichtig

# diese Zeile löschen nach dem Einfügen
#
# Format of the commit message
# <type>(<scope>): <subject>
# <BLANK LINE>
# <body>
# <BLANK LINE>
# <footer>
#
#
# if applied, this commit will <TEXT>
#
#
# feat: A new feature
# fix: A bug fix
# docs: Documentation only changes
# style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
# refactor: A code change that neither fixes a bug nor adds a feature
# perf: A code change that improves performance
# test: Adding missing tests
# chore: Changes to the build process or auxiliary tools and libraries such as documentation generation

Meine lokale Git Konfiguration

[user]
name = Yannik Korzikowski
email = ko@yksolutions.eu
[commit]
verbose = true
gpgSign = true
template = ~/.git/templates/commit-msg
[gpg]
program = /usr/bin/krgpg
[tag]
forceSignAnnotated = true
[pull]
rebase = true

Photo by Simon Berger: https://www.pexels.com/photo/trees-in-autumn-forest-1552932/


Tags

#cheat_sheet#git

Share


Vorheriger Artikel
Cheat Sheet - Bash
Yannik Korzikowski

Yannik Korzikowski

Cloud Architect

Auch interessant

Cheat Sheet - Bash
Cheat Sheet - Bash
November 24, 2023
1 min
🇩🇪

Quick Links

AboutContact me

Social Media