webitect.de
Home | Blog | Apps

Veröffentlicht: 22.01.2024

Inhalt

Arbeiten mit git

In der Softwareentwicklung gibt es unterschiedliche Varianten, wie git eingesetzt werden kann. Dabei spielen grundsätzliche organisatorische Regelungen einen Rolle (z.B. deutsche oder englische Commit Messages), die Integration in bestehende System (z.B. Jira oder CI / CD Tools), aber auch die Art, wie und für welche Zwecke Branches angelegt werden sollen.
Ich will euch hier kurz vorstellen, wie wir in unseren Projekten vorgehen.

Infrastruktur

Wie ihr bereits wisst, setzen wir in unseren Projekten Bitbucket ein. Neben Bitbucket verwenden wir Jira und Confluence und damit einen Teil des sogenannten Atlassian-Stacks. Alle Tools sind kostenslos nutzbar und das Zusammenspiel der Systeme funktioniert einwandfrei. Als Build-Tool verwenden wir Jenkins, der bei uns in einem Docker-Container auf einem lokal installierten Server läuft.

git Workflow

Unsere Projekte haben einen master branch aus dem wir unsere Apps erstellen. Für jedes Feature oder jeden Bugfix erstellen wir einen eigenen Branch nach dem Muster:

feature/<jira-ticket-nr>-<kurzbeschreibung>

oder

bug/<jira-ticket-nr>-<kurzbeschreibung>

Dafür branchen wir für die Entwicklung des Features oder Bugs vom master Branch ab (wir verwenden unseren Alias für checkout):

git co -b <branchname>

Damit die Integration in Jira funktioniert verwenden wir für die commit message folgendes Muster:

git commit -m "[<jira-ticket-nr>] <commit message>"

Damit werden die Commits und Branches mit den entsprechenden Jira-Tickets verknüpft.

Wenn wir die Entwicklung an einem Ticket fertiggestellt haben, erstellen wir auf Bitbucket einen Pull Request (PR). Ein anderer aus dem Team kann sich diesen anschauen und kommentieren bzw. approven. Nach einem Approval mergen wir den Branch mit Hilfe der Bitbucket Merge-Funktion zurück in den master. Sollte das aufgrund von einem Merge-Konflikt nicht möglich sein. rebasen wir unseren lokalen Branch gegen den remote (^= origin) master und mergen die Änderungen händisch in unseren Branch (der Intellij 3-Wege Merge ist dabei ein guter Helfer). Danach müssen die Änderungen nur noch geforce pusht werden.

git rebase origin/master

// nach dem Mergen ...
git rebase --continue
git push -f

Der Merge des PRs über Bitbucket sollte nun möglich sein.

Merge- und Diff-Tool

Um Intellij als Merge-Tool einzustellen, können wir wiederum die gitconfig anpassen:

C:\Users\<user>\.gitconfig
...
[merge]
    tool = intellij
[mergetool "intellij"]
    cmd = "idea64 merge \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\""
    trustExitCode = true
[diff]
    tool = intellij
[difftool "intellij"]
    cmd = "idea64 diff \"$LOCAL\" \"$REMOTE\""
...

© 2023 - 2025 webitect.de | Impressum | About