Il mio background:
Ho programmato per molti anni, ma non ho mai usato un sistema di controllo della versione. Sentivo che un sistema del genere mi avrebbe risparmiato un sacco di tempo e mi avrebbe permesso di essere più produttivo, ma non ho mai avuto la possibilità di impararne uno, a causa della mancanza di tempo che avrei dovuto spendere per apprendere un tale sistema. p>
Finalmente mi sono ritrovato insieme e ho fatto una ricerca su cosa sono i VCS e quali sono le loro differenze. Poi, ho dovuto lavorare su qualche progetto, quindi ho lasciato che le informazioni raccolte sul CVS affondassero per qualche mese in più.
Mentre le informazioni stavano affondando, ho fatto la mia scelta con Git e ho iniziato ad impararlo. Ho finito il libro, chiamato "Git Magic", ho letto molti tutorial online e tutorial e ho giocato con diversi strumenti interattivi di apprendimento Git online. Ora, ho quasi finito con 'Git user manual'.
Sezione domande:
Dato che non ho una vera esperienza, ad eccezione di quella educativa, per favore consigli sul modo migliore di usare git nelle mie situazioni:
-
Diciamo che ho un progetto (un programma) che sto sviluppando.
Nel corso degli anni, è cresciuto con la sua libreria di funzioni / moduli.
Ho avviato un altro progetto (un programma diverso), in cui utilizzo la stessa libreria con quelle funzioni.Rendo questi due programmi e la libreria come un unico repository, poiché condividono le stesse librerie?
Oppure dividerli in 3 diversi repository git: uno per ogni programma e uno per le librerie, ma come posso testare il programma nella directory di lavoro o rilasciare il progetto di lavoro completo con tutte le librerie?
Fai qualche tipo di branching che condividerà la stessa cartella della libreria, ma programmi diversi ciascuno nel proprio ramo?Qual è il modo migliore per rendere quei programmi come programmi individuali, ma in modo che possano usare quelle librerie in ogni programma?
-
Un'altra situazione è:
Ho un progetto completato, che varia per scopi diversi. Voglio dire, ho diverse modifiche per un compito diverso. Ad esempio, ogni attività ha gli stessi file core, ma design diversi. Dovrei usare un ramo diverso per ogni progetto, pur mantenendo il core nella sua propria diramazione, ma, quindi, come posso rilasciare o testare il programma nel modo in cui il core si unisce a uno dei progetti necessari. Per progettazione, voglio dire - ogni interfaccia per il suo core avrà una diversa struttura del database, diverse forme, diversi gestori di eventi, ecc., Ma le stesse routine di base.