2011-10-12 5 views
8

Sono nuovo di git e testarlo in questo momento. Sul mio computer locale faccio frequenti commit. A intervalli voglio spingere il codice su un repository centrale. In questo momento pubblico tutti i commit compiuti. Quando lavoro da solo questo non è un grosso problema, ma quando lavoro con più sviluppatori su un progetto questo diventa caotico. Nel frattempo mi piacerebbe avere tutti i commit locali conservati sulla mia macchina locale, per ogni evenienza.git push, non spingere tutti i commit locali

È un buon modo per lavorare con git? È possibile? O sto pensando nel modo sbagliato?

+0

Entrambe le risposte sono un modo per farlo davvero ... così tanto da imparare :-) – Patrick

risposta

5

Un modo per farvi fronte è quello di creare un ramo di sviluppo personale nel repository locale. È solo un ramo regolare, niente di speciale, ma il commit sul ramo non verrà trasferito al repository centrale quando si esegue git push. Quando sei pronto per condividere le tue modifiche, unisci i commit dal tuo ramo personale al ramo principale e poi puoi trasferirli al repository centrale.

Una variazione su questo sarebbe iniziare un nuovo ramo per ogni caratteristica logica su cui si lavora, in modo da avere molti piccoli rami di sviluppo personale invece di uno grande. Quindi è possibile eliminare i rami delle feature dopo averli uniti nel ramo principale.

3

Il flusso di lavoro Git ti incoraggia a ripulire i commit locali (precoci e spesso) in una sequenza logica di commit che accompagna l'eventuale lettore passo dopo passo attraverso l'implementazione del tuo nuovo lavoro. Questo può essere fatto usando la funzione git rebase -i e altri strumenti. Con questo, puoi riordinare, modificare, dividere e schiacciare i commit secondo necessità per rendere tutto più bello. Quindi spingere che set di commit al server e, naturalmente, mantenerlo anche localmente.

Questo flusso di lavoro non è assolutamente necessario. Puoi spingere tutti i tuoi commit dettagliati sul server (ma affermi che diventa "caotico"), oppure puoi schiacciare il tuo lavoro in un singolo commit e spingerlo verso l'alto. Ciò che non si può ragionevolmente fare è però spingere un commit al server mantenendo un altro set localmente.

+0

Se si utilizza un ramo è possibile "push one commit al server mantenendo un altro set localmente". – jcoffland