Sie können nicht immer eine Verzweigung erstellen oder eine bestehende Verzweigung ziehen und zu dieser zurückschieben, da Sie nicht als Mitwirkender für dieses spezielle Projekt registriert sind.
Forking ist nichts anderes als ein Klon auf der GitHub-Server-Seite :
- ohne die Möglichkeit, direkt zurückzuschlagen
- mit Gabelschlange Funktion zur Verwaltung der Zusammenführungsanfragen hinzugefügt
Sie halten eine Abspaltung mit dem ursprünglichen Projekt synchron, indem Sie:
- Hinzufügen des Originalprojekts als Remote-Projekt
- regelmäßige Abrufe aus dem ursprünglichen Projekt
- stellen Sie Ihre aktuelle Entwicklung auf den Zweig um, den Sie durch das Fetch aktualisiert haben.
Mit der Rebase können Sie sicherstellen, dass Ihre Änderungen unkompliziert sind (keine Merge-Konflikte), was Ihre Pulling-Anfrage erleichtert, wenn Sie möchten, dass der Betreuer des ursprünglichen Projekts Ihre Patches in sein Projekt aufnimmt.
Das Ziel ist es, die Zusammenarbeit zu ermöglichen, auch wenn direkt Die Teilnahme ist nicht immer möglich.
Die Tatsache, dass Sie auf der GitHub-Seite klonen, bedeutet, dass Sie jetzt zwei "zentrales" Repository ("zentral" im Sinne von "von mehreren Mitarbeitern sichtbar").
Wenn Sie sie direkt als Mitwirkende hinzufügen können für eine Projekt haben, brauchen Sie kein weiteres mit einer Gabel zu verwalten.
Die Merge-Erfahrung wäre in etwa die gleiche, aber mit einer zusätzlichen Ebene der Umleitung (zuerst auf dem Fork pushen, dann nach einem Pull fragen, mit dem Risiko, dass Entwicklungen auf dem ursprünglichen Repo Ihre Fast-Forward-Merges nicht mehr Fast-Forward machen).
Das bedeutet, dass der korrekte Arbeitsablauf wie folgt aussieht git pull --rebase upstream
(Ihre Arbeit auf neue Übertragungen von Upstream umstellen), und dann git push --force origin
um die Historie so umzuschreiben, dass Ihre eigenen Commits immer über den Commits aus dem ursprünglichen (Upstream-)Repo stehen.
Siehe auch: