Commit 8552801c authored by Toni Beier's avatar Toni Beier

Add short guideline/explanation for committing and merge request

parent a24c2a41
......@@ -10,6 +10,68 @@ Dies hilft uns, den Überblick über veröffentlichte Änderungen zu behalten un
Für eine einfachere Handhabung können Sie die ["git-flow"-Erweiterung](https://danielkummer.github.io/git-flow-cheatsheet/) installieren.
Somit erhalten Sie spezielle git-Kommandos, die den Gitflow-Workflow für Sie umsetzen.
## Verwendungsablauf von git
Mit Hilfe des Gitflow Workflow können wir den Überlick über eingereichte Features und Bugfixes wahren.
Doch wie setzt man diesen Workflow um?
In diesem Repository sind 2-Hauptbranches vorhanden.
Der "master"-Branch wird nie direkt verändert und beinhaltet immer die aktuell stabile Version dieser Software.
Der "master"-Branch kann nur verändert werden, wenn er mit dem Develop-Branch gemerged wird.
Deshalb werden jegliche Push-Anfragen auf dem "master"-Branch zurückgewiesen.
Weiterhin können nur ausgewählte Maintainer einen Merge in den "develop"-Branch durchführen, wodurch auch dieser vor unbefugten Push-Anfragen geschützt ist.
Möchten Sie Änderungen an dem Code vornehmen, müssen Sie einen weiteren Branch aus dem aktuellen "develop"-Branch erstellen.
```bash
git checkout develop # checkout current develop branch
git branch feature_branch # create new branch with name feature_branch
git checkout feature_branch # checkout created branch
```
Erfahrene git-Benutzer verwenden eine kürzere Variante.
```bash
git checkout develop # checkout current develop branch
git checkout -b feature_branch # creating new branch and checkout in a single step
```
In dem angelegten Branch können Sie Ihre Änderungen vornehmen und diese commiten.
```bash
git commit -a
```
Ein Branch, der von dem "develop"-Branch abgezweigt wurde und alle Commits zu einer konkreten Änderung enthält, wird Feature-Branch genannt.
Diese Branches sollten aussagekräftige Namen besitzen, damit leicht verständlich ist, welche Funktionalität in dem Branch entwickelt wird.
Ein Beispiel ist ein Branch, der ein neues Hintergrundbild für den Startbildschirm setzt.
Diesen Branch könnte man "new_background_for_startscreen" nennen.
Somit ist sofort ersichtlich, welche Änderugen in diesem Branch vorgenommen wurden.
Um diese Änderungen in den OpenAssist-Kern einbringen zu können, muss ein Merge-Request gestellt werden.
Dazu wird der Feature-Branch in das GitLab gepusht, damit ist der Branch öffentlich zugänglich.
```bash
git push origin feature-branch
```
Mithilfe des GitLabs kann ein Merge-Request gestellt werden.
Dabei ist der "develop"-Branch als Zielbranch zu wählen.
Der Merge-Request informiert die Maintainer, dass neue Änderungen für den OpenASiST-Kern zur Verfügung stehen.
Wird der Merge-Request angenommen, sind die Änderungen des Feature-Branches auch im "develop"-Branch verfügbar.
Beachten Sie bitte folgende Richtlinien, damit wir Ihre Änderungen schnellstmöglichst bearbeiten können.
Für eine schnellstmögliche Bearbeitung Ihrer Beiträge sollten Sie folgende Richtlinen einhalten.
Commit-Nachrichten sind in englischer Sprache zu verfassen und beschreiben kurz alle Auswirkungen des Commits.
Weiterhin ist eine passive und neutrale Beschreibung der Auswirkungen zu bevorzugen.
Eine Erklärung der Implementierung ist an dieser Stelle unnötig, weil diese Aufgabe eine Dokumentation des Codes übernimmt.
Sinnvolle Commit-Nachrichten sind:
* 'Feed module deletes outdated news'
* 'Canteen module supports moving between days using a swipe gesture'
Sind Ihre Commits in einer brauchbaren Form, können Sie einen Merge-Request stellen.
Der Ziel-Branch sollte immer der 'develop'-Branch sein, da dieser den derzeitigen Entwicklungsstand repräsentiert.
Weiterhin sollten Sie eine Beschreibung der Lösung zu dem Merge-Request beifügen.
Möchten Sie mit Ihren Änderungen einen Issue lösen, nennen Sie den Issue in dem request-Titel oder in der Beschreibung.
Somit wird der gelöste Issue automatisch geschlossen, wenn der Request akzeptiert wurde.
Dieses Vorgehen hilft, die Issues aktuell zu halten und mindert den Verwaltungsaufwand dieser.
Der zu mergende Branch ist mit einem sinnvollen und aussagekräftigen Namen zu benennen.
## App-Design
Die App soll sich in das native System einfügen, somit sind UI-Änderungen entsprechend der Guidelines des nativen Systems durchzuführen.
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment