In che modo git / GitHub gestisce i repository locali e cambiati modificati?

3

Sto lavorando con alcune altre persone ai progetti, e oggi mi sono imbattuto in una situazione che sono sicuro che vedrò spesso. Uno dei miei colleghi e io avevamo diviso alcuni compiti da svolgere nello stesso progetto e abbiamo iniziato a lavorare. Ha terminato i suoi compiti e ha spinto le sue modifiche al nostro repository condiviso. Stavo ancora lavorando sui miei cambiamenti, ma avevo paura di spingerli e sovrascrivere il codice su cui aveva lavorato con il mio progetto, contenendo solo la metà delle modifiche necessarie.

Per questa situazione (solo per essere sicuro, ho avuto una presentazione sul codice in pochi minuti e non volevo nessuna battuta d'arresto importante), ho fatto una copia del mio codice locale, tirato il suo nuovo codice, copiato i file Avevo modificato il progetto che avevo appena tirato (stavamo lavorando in due sezioni separate, ma sono curioso di sapere come git / GitHub gestisce questo problema quando si lavora negli stessi file), e poi ha spinto il nostro codice combinato. Quindi, come fa git (o come dovremmo) gestire un progetto con due diverse modifiche allo stesso file?

    
posta Zachary Orr 19.07.2011 - 04:43
fonte

1 risposta

7

Diciamo che abbiamo Git repo A .

  1. Dev 1 cloni Git repo A .
    Dev 2 cloni Git repo A

  2. Dev 1 modifica i file: foo, bar, and baz (da clonato Git repo A ).
    Dev 2 modifica i file: baz, bar, and foo (da clonati Git repo A ).

  3. Dev 1 si impegna e torna a Git repo A .
    Dev 2 deve tirare (recuperare e unire) l'ultima istantanea di Git repo A prima di poter inviare a Git repo A

Git forza questo comportamento. GitHub è solo un altro repository Git ospitato da una terza parte online. Smetti di fare manualmente ciò che Git è stato scritto per fare e lascia che faccia la sua cosa! Risparmerai anche molto tempo.

Se nel passaggio 3 ci sono delle unioni che non possono essere risolte dall'algoritmo di fusione di Git, riceverai una notifica e ti verranno fornite le opzioni per eseguire l'unione manualmente.

    
risposta data 19.07.2011 - 05:32
fonte

Leggi altre domande sui tag