Ich möchte zu einem bestimmten Projekt in GitHub beitragen . Soll ich es gabeln ? Verzweigen ? Was wird empfohlen und wie geht das?
Ich möchte zu einem bestimmten Projekt in GitHub beitragen . Soll ich es gabeln ? Verzweigen ? Was wird empfohlen und wie geht das?
Antworten:
Idealerweise Sie:
Wenn es sich um eine neue Funktionsanforderung handelt, starten Sie die Codierung nicht zuerst. Denken Sie daran, ein Problem zu veröffentlichen, um die neue Funktion zu diskutieren.
Wenn die Funktion gut besprochen ist und es +1 gibt oder der Projektbesitzer sie genehmigt hat, weisen Sie sich das Problem zu und führen Sie die obigen Schritte aus.
Einige Projekte verwenden das Pull-Request-System nicht. Erkundigen Sie sich beim Autor oder in der Mailingliste, wie Sie Ihren Code am besten wieder in das Projekt integrieren können.
Um Yanns Antwort zu ergänzen , können Sie nach dem Verzweigen eines Projekts in jedem gewünschten Zweig (einem neuen oder einem aus dem ursprünglichen Projekt) entwickeln.
Erinnere dich an:
origin
', da origin
dies Ihr eigenes Repo wäre, Ergebnis der Gabelung)git checkout master;
git pull;
Gleiches gilt für die Entwicklung (wo mein Feature-Zweig zuerst zusammengeführt wurde) Der Unterschied, den ich mir vorstellen kann von, nach dem Lesen von "pull vs pull --rebase" und "merge vs rebase" ist nur die flache Geschichte. Sonst noch etwas tiefer?
Um die Antworten von Yan und VonC zu ergänzen, ist dies eine gute Ressource von Github selbst: http://help.github.com/forking/
Achten Sie auch darauf, in der rechten Seitenleiste unter der Überschrift "Zusammenarbeit" nachzuschauen.
Hier gibt es ein großartiges Railscast-Video , das Sie durch den Prozess führt. Es enthält auch eine Reihe guter Tipps, z. B. Informationen zum Bestimmen, an welchem Zweig Sie möglicherweise arbeiten möchten, wenn Sie Beiträge leisten, Tests, Submodule usw. verwenden.
Während sich dieser Screencast in erster Linie an Rails-Entwickler richtet, sind die meisten Informationen für Beiträge zu Open Source-Projekten gültig.
Github hat viele Möglichkeiten, an einem Projekt zusammenzuarbeiten. Das Modell, das am häufigsten in Projekten verwendet wird, ist ein Pull-Request-Modell. Ich habe ein Projekt gestartet, um Leuten zu helfen, ihre erste GitHub-Pull-Anfrage zu stellen. Hier können Sie das praktische Tutorial durchführen, um Ihre erste PR zu erstellen
Der Workflow ist so einfach wie
git push origin branch-name
Compare and pull request
Schaltfläche zu sehenlornajane hat einen Blog-Beitrag, der den Prozess gut erklärt: http://www.lornajane.net/posts/2010/contributing-to-projects-on-github
Ich würde den folgenden Workflow vorschlagen:
Klonen (in der Kommandozeile)
git clone <url-from-your-workspace>
Geben Sie das gerade erstellte Verzeichnis ein und erstellen Sie einen Zweig
cd <directory>
git checkout -b <branchname>
Nehmen Sie jetzt Ihre Änderungen vor
Sie können nach jeder Änderung ein oder mehrere Commits erstellen:
commit -a
Wenn Sie fertig sind, drücken Sie Ihre Änderungen
git push origin <branch>
In Ihrer Befehlszeile sollte eine URL zum Erstellen der PR angezeigt werden . Besuchen Sie die URL und klicken Sie auf die Schaltfläche, um eine PR zu erstellen.
Wenn nicht, besuchen Sie das Repository im Browser und es bietet Ihnen eine Schaltfläche zum Erstellen der Pull-Anforderung
Das ist es.
Im Grunde haben Sie das Repository in Ihren Arbeitsbereich gegabelt, einen neuen Zweig erstellt und diesen neuen Zweig verschoben.
Wenn Sie später mehr PR aus demselben geklonten Repo erstellen, sollten Sie synchronisieren (die neuesten Änderungen aus dem ursprünglichen Repository abrufen), bevor Sie einen weiteren Zweig für einen anderen PR erstellen:
git checkout master
git remote add upstream <url-of-original-repo>
git pull upstream master
Diese Vorschläge sollen Sie vor der Mühe bewahren, Arbeit in eine PR zu stecken, die nicht zusammengeführt wird. Wenn das Projekt aktiv ist und PR zusammengeführt wird, ist dies ein gutes Zeichen. Wenn es Beitragsrichtlinien gibt, befolgen Sie diese.
Sei immer höflich. Denken Sie daran, dass die Projektbetreuer in keiner Weise verpflichtet sind, Ihre PR zusammenzuführen. Haben Sie etwas Wertvolles zum Projekt hinzuzufügen?