Git: Branch o Fork?

16

Ho un progetto di gioco che avrà due versioni:

  1. Una versione semplice del gioco, il nucleo.
  2. Una versione avanzata del gioco.

Ho la prima versione nel mio repository pubblico, e solo ci lavorerò sopra. Per quanto riguarda la seconda versione, due miei amici e io ci lavoreremo sopra. La parte cruciale è che voglio che le due versioni rimangano nel mio repository.

Ho pensato che potrei usare le filiali per questo, ma considerando questa domanda e la sua risposta , non è una buona pratica per farlo in termini di versioning. Per quanto ho scoperto, non è possibile forgiare il tuo repository.

Quali sono le mie opzioni qui? Come posso mantenere entrambe le versioni nel mio repository?

    
posta Varaquilex 29.04.2014 - 22:17
fonte

3 risposte

11

A me sembra che siano necessari due repository e non due rami . Un ramo è un meccanismo per gestire le modifiche all'interno di un singolo repository al fine di unirle con il resto del codice.

Se vuoi davvero mantenere entrambe le versioni di un code-em simile nello stesso repository, allora la tua unica opzione è quella di cercare un Branch , comunque come accennato in precedenza, lo scopo principale di un ramo è quello di separare alcuni commit specifici in modo che non siano in conflitto con il resto del codice durante il periodo di sviluppo e unirli quando sono pronti per andare.

Ci sono situazioni in cui un repository ha due rami leggermente diversi - ad es. Versioni a 32 e 64 bit dello stesso codice sorgente, tuttavia ti consiglio comunque di cercare repository separati, se questa è un'opzione.

    
risposta data 30.04.2014 - 18:49
fonte
5

La risposta alla domanda "dovrei clonare o forgiare" è esattamente la stessa della risposta a questa domanda "voglio la mia versione personale di questo progetto?" si = fork, no = clona il repository.

In git, branch è una cosa leggera che è spesso temporanea e può essere cancellata. Un fork (su github) è un nuovo progetto basato su un progetto precedente. Cloni un repository per lavorare su di esso come membro del team.

Molti progetti pubblici ti offrono la possibilità di mantenere i cambiamenti di lavoro fuori dal progetto principale.

Per la fase 2, imposta il progetto sul clone, quindi clonalo sul tuo computer di lavoro e chiedi ai tuoi amici di fare lo stesso.

    
risposta data 30.04.2014 - 18:19
fonte
0

Quello che sembra davvero che tu voglia è un sottomodulo. Se crei il primo repository (il tuo repository privato semplice) e lo aggiungi come sottomodulo al repository di versioni avanzate, dovresti essere in grado di monitorare e apportare modifiche al sottomodulo nel repository avanzato mentre sviluppi il repository privato semplice.

    
risposta data 16.08.2017 - 00:37
fonte

Leggi altre domande sui tag