Skip to content

Feature Beisteuern ohne Schreibrecht auf das Repository

me-like-cookies edited this page Sep 22, 2019 · 9 revisions

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.

Further Reading

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".

Vorbereitung

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

Fork-übergreifenden pull request erstellen

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: Local feature/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!