gemeinsames Arbeiten mit git

Wie arbeitet man mit git bei einem Open-Source-Projekt mit? Welche Branches braucht es, wann wird ein Merge durchgeführt, und wie entstehen dabei ordentliche Pull-Requests? Vor allem als Merkzettel für mich selbst habe ich mein Vorgehen dazu aufgeschrieben.

Das Projekt, bei dem mitgearbeitet wird, soll https://github.com/example/coole-software sein. Statt github.com kann es auch ein beliebiger anderer Dienst sein.

Als ersten Schritt erstelle ich mir davon einen Fork. Der heißt dann https://github.com/jze/coole-software. Den Code checke ich lokale aus und füge das Original als weitere Quelle hinzu:

git clone git@github.com:jze/coole-software.git
cd coole-software
git remote add upstream https://github.com/example/coole-software

Jede Änderung wird in einem eigenen Feature-Branch entwickelt. So ist sichergestellt, dass nur die zu diesem Feature gehörenden Änderungen auch im Pull Request auftauchen. Wenn ich z.B. eine Unterstützung für Docker einbauen will, würde ich mir so einen Feature-Branch anlegen:

git checkout main
git branch docker
git checkout docker

Würde ich auch noch an Übersetzungen arbeiten, würde das in einem weiteren Feature-Branch passieren:

git checkout main
git branch i18n
git checkout i18n

Beim git push bekomme ich schon angeboten, einen Pull Request zu erstellen.

Da ich selbst auch mit der Software arbeiten will, stelle ich mir alle meine Änderungen in einem eigenen Branch zusammen. Den lege ich einmalig an:

git checkout main
git branch dev

Jede Arbeit an einem Feature-Branch kopiere ich in den dev-Branch, für das Beispiel also:

git checkout dev
git merge docker
git merge i18n

Jetzt habe ich die Version inklusive aller Ergänzungen von mir.

Hin und wieder sollte ich Änderungen vom Originalprojekt holen:

git checkout main
git pull upstream main
git checkout dev
git merge main

Kommentare

Mit einem Konto im Fediverse oder auf Mastodon kannst du auf diesen Beitrag antworten. Da Mastodon dezentral funktioniert, kannst du dein bestehendes Konto auf einem Mastodon-Server oder einer kompatiblen Plattform verwenden.

Nach einem Klick auf "Lade Kommentare" werden nicht-private Antworten vom Server norden.social geladen und unten angezeigt.

Wie das technisch funktioniert, kann man hier erfahren.