Problema merge con git

di il
2 risposte

Problema merge con git

Ciao a tutti,
è da poco che uso git e ho un dubbio.
Sto lavorando su un branch sul quale ho committato e pushato le mie modifiche. Ora, si è creata la necessità di mergiare le modifiche apportate su un altro Branch dal mio collega, devo cioè mergiare il suo branch con il mio. Quello che devo fare e switchare sul suo branch e da lì fare questo merge. Il dubbio è: come fa git a sapere cosa deve mergiare? E se sovrascrivesse le mie modifiche?

2 Risposte

  • Re: Problema merge con git

    switch_the_cat ha scritto:


    devo cioè mergiare il suo branch con il mio. Quello che devo fare e switchare sul suo branch e da lì fare questo merge. Il dubbio è: come fa git a sapere cosa deve mergiare? E se sovrascrivesse le mie modifiche?
    Beh, git "sa" cosa c'è sui due branch, quindi a meno di situazioni particolari (che probabilmente non è il tuo caso), è in grado di fare gli inserimenti/modifiche/cancellazioni su quel quel branch con quello che hai fatto tu.
    Git NON "sovrascrive" così di brutto le cose, sarebbe abbastanza grave se lo facesse. Se non ci sono conflitti (es. tu hai lavorato solo su un file A e il tuo collega solo sul file B), va tutto liscio. Se ci sono conflitti, il merge fallisce e git te lo dice. E ti mette nei sorgenti l'evidenza dei conflitti con delle parti delimitate da tanti >>>>> e <<<<<. E poi allora sei tu a dover risolvere "a mano" i conflitti.
  • Re: Problema merge con git

    Ciao, grazie per la risposta. Non avevo proprio compreso la procedura, perché partivo dal presupposto che per mergiare le modifiche del mio collega dovessi spostarmi sul suo branch e da lì fare team—>merge con il mio branch remoto, invece era il contrario...dovevo mergiare restando sul mio branch, quello che aveva bisogno delle modifiche che il mio collega aveva fatto sul branch master. Dopo il merge (per sicurezza mi hanno detto di checkare “no commit) sono comparsi dei conflitti. A quel punto ho selezionato tutte le cartelle del progetto, fatto commit e poi modificato a mano tutte le classi e gli xml in conflitto nell’area degli unstaged changes . Una volta modificati e salvati, li ho spostati nell’area degli staged changes , ho committato il tutto e pushato.
Devi accedere o registrarti per scrivere nel forum
2 risposte