Al mio attuale datore di lavoro, stiamo utilizzando un progetto open source ospitato su Github come componente della nostra applicazione. Ho lavorato a questo progetto per aggiungere alcune funzionalità di cui abbiamo bisogno e integrarlo con i nostri sistemi di compilazione. Il mio manager ed io siamo d'accordo sul fatto che vorremmo inviare la maggior parte del nostro lavoro su questa componente come ragionevole per il progetto open-source. La mia domanda riguarda quale sia la migliore tecnica / flusso di lavoro per mantenere il mio Git commesso in modo tale da poter facilmente separare le cose che hanno senso aggiungere al progetto open-source - correzioni di bug e nuove funzionalità che sono sufficientemente generali - da cose che sono specifiche del nostro progetto, come le posizioni di costruzione e le costanti di applicazione.
Quello che ho fatto finora è mantenere un ramo Git privato in cui commetto tutte le mie modifiche, con granularità appropriata. Quindi utilizzo cherry-pick
per aggiungere i commit open source al ramo master e li invio a Github.
Sembra che dovrei usare l'unione per farlo, in modo da non continuare a creare commit separati con contenuti identici, ma non sono sicuro di come farlo escludendo i commit specifici dell'azienda e mantenendo un flusso di lavoro ragionevole.
Ad esempio, suppongo di poter commettere cose open source su elementi master e specifici dell'azienda sul ramo privato, e quindi unire il master in quel ramo secondo necessità, lasciando il ramo master che punta al commit prima dell'unione, ad esempio che potrei impegnarmi di nuovo con le cose aperte su di esso e poi unirmi di nuovo. Ciò che sembra imbarazzante in questo flusso di lavoro è che avrei bisogno di decidere in anticipo per tutto quello che faccio su quale ramo appartenesse, lavorare su quello a quello che sembrava completamento, poi impegnarlo e unirlo prima di testare. Una delle cose che mi piace davvero di Git è quanto sia facile fare tutto ciò che è necessario per far funzionare la tua applicazione, e poi decidere in seguito come e dove trasferire le tue modifiche. Per quanto ne so, se sei attualmente in una filiale e hai qualche lavoro da fare, non c'è un modo semplice per inviare parte di quel lavoro a un altro ramo, dal momento che passare a quel ramo richiederebbe una directory di lavoro pulita.
È quello che sto facendo un flusso di lavoro ragionevole per i contributi a lungo termine? Qualcuno può consigliare un flusso di lavoro diverso che potrebbe essere migliore e perché è meglio?