-
-
Notifications
You must be signed in to change notification settings - Fork 96
Feature Beisteuern ohne Schreibrecht auf das Repository
Das Haupt-Repository von MV git://github.com/mediathekview/MediathekView.git ist nicht für jedermann schreibbar. Ohne Schreibrecht sind keine pushes dorthin möglich! Trotzdem kann man aber zumindest einen pull request erstellen und auf diesem Weg den Entwicklern und Maintainern Code anbieten.
Die Anleitung creating a pull request wird in diesem Beitrag hier im Prinzip mit kleinen Ergänzungen nacherzählt: "Wie ein git-Anfänger ohne MV repo Schreibrecht einen pull request erstellte".
Das Ziel dieser Anleitung ist, den pull request nicht direkt vom lokalen PC ins MV repo zu erstellen, sondern über ein "Makler-Repository", auf das man Schreibrechte hat. Dazu brauchen wir ein "Makler-Repository" und müssen es unserem lokalen Klon des MV Repository dann auch bekannt machen.
Im Detail:
- Kennung bei github anlegen
- bei github einloggen
- in github das MV repo besuchen https://github.com/mediathekview/MediathekView
- im MV repo einen fork anlegen (Gabel-Symbol und Text fork rechts oben)
- auf dem lokalen MV Klon des MV repo den eigenen fork von MV als Rückkanal bekanntmachen
git remote add upstream git://github.com/myGithubAccount/MediathekView.git
- ggfs. jeden push per default in den upstream leiten
git config push.default upstream
Der Plan ist grob skizziert, vom lokalen Klon aus den Code des feature-branch feature/meineumel
in ein für Dich schreibbares "Makler-Repository" auf github (in den oben erstellten Fork!) wiederum als des feature-branch feature/meineumel
zu schreiben. Und vom "Makler-Repository" aus in der github Plattform einen fork-übergreifenden pull request erstellen für feature/meineumel
nach develop
. - Den pull request bekommen dann die MV maintainer zu sehen.
Im Detail:
- Wurden neue Dateien erstellt, müssen diese mit
git add relativer/Pfad/meineDatei
für Repository "vorgemerkt" werden - neuer und geänderter Code, der zur Änderung gehört, muss ins lokale Repository committed sein, etwa im branch
feature/meineumel
- man muss nicht jede einzelne Datei, in der man Änderungen gemacht hat, die aber nicht für das feature benötigt werden, committen. Man kann beim commit die ins repository zu übertragenden Dateien auswählen.
- lokalen branch
feature/meineumel
pushen in den upstream (Fork git://github.com/myGithubAccount/MediathekView.git)
- TODO Kommandozeile für den push in das upstream Repository ergänzen
- z.B. den push per default in den upstream leiten
git config push.default upstream
- Für Kommandozeile ggfs. auf diese Anleitung verweisen: https://stackoverflow.com/questions/8170558/git-push-set-target-for-branch
- unter Windows geht entsprechendes push z.B. mit TortoiseGit sehr schön: Unter Destination: [x] Remote:
upstream
(nicht origin). Unter Ref: Localfeature/meineumel
und auch unter Remote:feature/meineumel
- im github account in das Fork repository wechseln
- im Fork repository den branch
feature/meineumel
auswählen - im Fork repository new pull request auswählen
- als base repository muss das MV repo von github account mediathekview ausgewählt sein
- als base dort der
develop branch
- als head repository muss das MV repo von myGithubAccount ausgewählt sein
- als compare branch hier
feature/meineumel
- Pull request absenden und der Dinge harren die da kommen.
Fertig. War aber auch einfach... hth!