Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Sincronizzazione dei Repository | Workflow Più Avanzati
Fondamenti di GitHub
course content

Contenuti del Corso

Fondamenti di GitHub

Fondamenti di GitHub

1. Introduzione a GitHub
2. Interazione di Base con i Remoti
3. Workflow Più Avanzati

book
Sincronizzazione dei Repository

Come menzionato nel capitolo precedente, è necessario sincronizzare il nostro branch locale con il repository remoto. Per farlo, bisogna eseguire il comando git pull:

Quando abbiamo eseguito il comando git pull, Git ha recuperato gli aggiornamenti ma ha rilevato che i nostri branch locale e remoto si sono divergenti, ovvero ci sono modifiche su entrambi i branch che devono essere riconciliate. Git non ha potuto procedere perché deve sapere come gestire queste differenze, quindi impostiamo l'opzione merge ed eseguiamo nuovamente il comando git pull:

Note
Nota

L'operazione di rebase verrà trattata più avanti in questo corso.

Git ha tentato di unire automaticamente le modifiche locali e remote al file README.md, ma si è verificato un conflitto di merge. Esaminiamo l'albero dei commit, che indica dove si sono verificati divergenze e conflitti:

Risoluzione del conflitto

Come puoi vedere, il nostro commit locale attuale e il commit nel branch remoto main condividono un antenato comune, ma divergono, portando al conflitto di merge che dobbiamo risolvere. Per farlo, apriremo il file README.md nell'editor Vim:

Per risolvere questo conflitto, è possibile entrare in modalità inserimento premendo i, rimuovere i marcatori di conflitto e combinare queste modifiche nel modo seguente:

Successivamente, premere il tasto Escape, digitare :wq e premere il tasto Invio per salvare le modifiche ed uscire da Vim. Ora, per completare la fusione, il file README.md deve essere aggiunto all'area di staging e poi committato utilizzando i rispettivi comandi:

Note
Nota

Dopo aver eseguito il comando git commit, si aprirà il editor di testo predefinito (molto probabilmente Vim). È possibile lasciare il messaggio di commit predefinito ed uscire da Vim nello stesso modo appena descritto, oppure modificare il messaggio e poi uscire.

Infine, è possibile eseguire in sicurezza il comando git push e verificare che la fusione a tre vie sia avvenuta con successo visualizzando l'albero dei commit:

Analizziamo quanto fatto in questi due capitoli:

  1. Abbiamo simulato la collaborazione apportando modifiche sia localmente che remotamente al file README.md;

  2. Abbiamo prima effettuato una commit direttamente nel repository remoto, poi abbiamo apportato una modifica diversa localmente;

  3. Quando abbiamo provato a inviare le modifiche locali, abbiamo riscontrato un conflitto perché il repository remoto aveva nuovi aggiornamenti;

  4. Per risolvere, abbiamo scaricato le modifiche dal repository remoto, il che ha generato un conflitto di merge;

  5. Abbiamo quindi risolto manualmente il conflitto nel file README.md utilizzando l'editor Vim, effettuato la commit delle modifiche risolte e inviato con successo gli aggiornamenti finali al repository remoto.

question mark

Quale comando imposta Git per utilizzare il merge (e non il rebase) durante git pull?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 3. Capitolo 2

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

course content

Contenuti del Corso

Fondamenti di GitHub

Fondamenti di GitHub

1. Introduzione a GitHub
2. Interazione di Base con i Remoti
3. Workflow Più Avanzati

book
Sincronizzazione dei Repository

Come menzionato nel capitolo precedente, è necessario sincronizzare il nostro branch locale con il repository remoto. Per farlo, bisogna eseguire il comando git pull:

Quando abbiamo eseguito il comando git pull, Git ha recuperato gli aggiornamenti ma ha rilevato che i nostri branch locale e remoto si sono divergenti, ovvero ci sono modifiche su entrambi i branch che devono essere riconciliate. Git non ha potuto procedere perché deve sapere come gestire queste differenze, quindi impostiamo l'opzione merge ed eseguiamo nuovamente il comando git pull:

Note
Nota

L'operazione di rebase verrà trattata più avanti in questo corso.

Git ha tentato di unire automaticamente le modifiche locali e remote al file README.md, ma si è verificato un conflitto di merge. Esaminiamo l'albero dei commit, che indica dove si sono verificati divergenze e conflitti:

Risoluzione del conflitto

Come puoi vedere, il nostro commit locale attuale e il commit nel branch remoto main condividono un antenato comune, ma divergono, portando al conflitto di merge che dobbiamo risolvere. Per farlo, apriremo il file README.md nell'editor Vim:

Per risolvere questo conflitto, è possibile entrare in modalità inserimento premendo i, rimuovere i marcatori di conflitto e combinare queste modifiche nel modo seguente:

Successivamente, premere il tasto Escape, digitare :wq e premere il tasto Invio per salvare le modifiche ed uscire da Vim. Ora, per completare la fusione, il file README.md deve essere aggiunto all'area di staging e poi committato utilizzando i rispettivi comandi:

Note
Nota

Dopo aver eseguito il comando git commit, si aprirà il editor di testo predefinito (molto probabilmente Vim). È possibile lasciare il messaggio di commit predefinito ed uscire da Vim nello stesso modo appena descritto, oppure modificare il messaggio e poi uscire.

Infine, è possibile eseguire in sicurezza il comando git push e verificare che la fusione a tre vie sia avvenuta con successo visualizzando l'albero dei commit:

Analizziamo quanto fatto in questi due capitoli:

  1. Abbiamo simulato la collaborazione apportando modifiche sia localmente che remotamente al file README.md;

  2. Abbiamo prima effettuato una commit direttamente nel repository remoto, poi abbiamo apportato una modifica diversa localmente;

  3. Quando abbiamo provato a inviare le modifiche locali, abbiamo riscontrato un conflitto perché il repository remoto aveva nuovi aggiornamenti;

  4. Per risolvere, abbiamo scaricato le modifiche dal repository remoto, il che ha generato un conflitto di merge;

  5. Abbiamo quindi risolto manualmente il conflitto nel file README.md utilizzando l'editor Vim, effettuato la commit delle modifiche risolte e inviato con successo gli aggiornamenti finali al repository remoto.

question mark

Quale comando imposta Git per utilizzare il merge (e non il rebase) durante git pull?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 3. Capitolo 2
some-alt