Bei meinem derzeitigen Arbeitgeber verwenden wir ein Open-Source-Projekt, das auf Github gehostet wird, als Bestandteil unserer Anwendung. Ich habe an diesem Projekt gearbeitet, um sowohl einige Funktionen hinzuzufügen, die wir benötigen, als auch um sie in unsere Build-Systeme zu integrieren. Mein Manager und ich sind uns einig, dass wir so viel von unserer Arbeit an dieser Komponente wie möglich an das Open-Source-Projekt zurückgeben möchten. Meine Frage ist, was der beste Workflow / die beste Technik ist, um meine Git-Commits so zu verwalten, dass ich leicht Dinge herausfiltern kann, die sinnvoll sind, um sie dem Open-Source-Projekt wieder hinzuzufügen - Fehlerkorrekturen und neue Funktionen, die allgemein genug sind - von Dingen, die für unser Projekt spezifisch sind, wie Build-Speicherorte und Anwendungskonstanten.
Was ich bisher getan habe, ist die Pflege eines privaten Git-Zweigs, in dem ich alle meine Änderungen mit angemessener Granularität festschreibe. Ich cherry-pick
füge dann die Open-Sourcing-Commits zur Hauptniederlassung hinzu und sende sie an Github zurück.
Es scheint, als sollte ich Merge verwenden, um dies zu tun, damit ich nicht ständig separate Commits mit identischen Inhalten erstelle, aber ich bin mir nicht sicher, wie ich das tun soll, während ich die unternehmensspezifischen Commits ausschließe und einen angemessenen Workflow einhalte.
Ich nehme zum Beispiel an, ich könnte Open-Sourcing-fähige Dinge für Master- und unternehmensspezifische Dinge in der privaten Niederlassung festschreiben und dann den Master nach Bedarf in diese Niederlassung einbinden, wobei die Hauptniederlassung vor der Zusammenführung auf die Festschreibung zeigen würde, so dass ich dies könnte Legen Sie Open-Sourcing-fähige Dinge erneut fest und führen Sie sie dann erneut zusammen. Was an diesem Workflow unangenehm erscheint, ist, dass ich mich für alles, was ich tue, im Voraus entscheiden muss, zu welchem Zweig er gehört, daran arbeiten muss, bis er abgeschlossen ist, ihn dann festschreiben und vor dem Testen zusammenführen muss. Eines der Dinge, die ich an Git wirklich mag, ist, wie einfach es ist, einfach alles zu tun, was Sie brauchen, damit Ihre Anwendung funktioniert, und später zu entscheiden, wie und wo Sie Ihre Änderungen übernehmen möchten. Soweit ich das beurteilen kann, gibt es dort, wenn Sie sich derzeit in einer Niederlassung befinden und einige Arbeiten erledigen müssen. '
Ist das, was ich mache, ein vernünftiger Workflow für langfristige Beiträge? Kann jemand einen anderen Workflow empfehlen, der möglicherweise besser ist, und warum ist er besser?