Ho biforcato un repository Github e aggiunto un telecomando upstream come descritto qui . Mi aspetto di apportare alcune correzioni di bug compatibili con le versioni precedenti per le quali vorrei presentare richieste di pull upstream, oltre a alcune importanti modifiche non compatibili con le versioni precedenti. Questa domanda riguarda come gestire entrambe le cose in un unico repo, o se è anche una buona idea. Ho descritto cosa intendo fare di seguito. Sono molto nuovo a lavorare con le filiali Git, quindi per favore dimmi se questo ha senso.
Modifiche compatibili con le versioni precedenti
Penso che dovrei mantenere origin/master sincronizzato con upstream/master e non unire mai le mie modifiche personali in questo ramo. Creo rami di funzionalità disattivati origin/master per tutte le modifiche che aspetto di inviare a monte. Se vengono accettati, unirò upstream/master in origin/master ed eliminerò i rami.
Modifiche non retrocompatibili
Penso che dovrei creare un ramo separato da origin/master per aggregare tutte le mie modifiche. Questo ramo si chiamerebbe origin/my-version o qualcosa del genere. Unirei i miei rami compatibili con le versioni precedenti in questo ramo senza aspettare che fossero accettati a monte. Lavorerei su modifiche non retrocompatibili nei rami di my-version . Ogni volta che unisco le modifiche upstream in origin/master , rebase my-version sul nuovo origin/master HEAD . Non mi aspetto molti conflitti di unione perché il progetto upstream è maturo e lo sviluppo è lento.
Il mio dubbio principale è se la fusione dei miei rami compatibili con le versioni precedenti in my-version creerà problemi se queste modifiche vengono successivamente accettate a monte e io le unisco in origin/master . Che effetto avrebbe avuto sulla ridefinizione di my-version , se davvero la ridefinizione è ciò che dovrei fare?