Devi capire che un repository Git non è solo un albero di directory e file, ma memorizza anche una cronologia di quegli alberi, che potrebbero contenere rami e fusioni.
Quando recuperi da un repository, copierai tutti o alcuni dei rami lì nel tuo repository. Questi sono quindi nel tuo repository come "rami di tracciamento remoto", ad esempio rami denominati come remotes/origin/master
o tali.
Il recupero di nuovi commit dal repository remoto non cambierà nulla sulla tua copia di lavoro locale.
Normalmente la tua copia di lavoro ha un commit estratto, chiamato HEAD
. Questo commit è di solito la punta di una delle tue filiali locali.
Penso che tu voglia aggiornare il tuo ramo locale (o forse tutti i rami locali?) Al ramo remoto corrispondente e quindi controllare l'ultimo ramo.
Per evitare conflitti con la tua copia di lavoro (che potrebbe avere modifiche locali), devi prima ripulire tutto ciò che non ha una versione (usando git clean
). Quindi si verifica il ramo locale corrispondente al ramo remoto che si desidera aggiornare e si utilizza git reset
per passare al ramo remoto recuperato. ( git pull
incorporerà tutti gli aggiornamenti della filiale remota in quella locale, che potrebbe fare lo stesso, o creerà un commit di unione se si dispone di commit locali.)
(Ma allora perderai davvero tutte le modifiche locali - sia nella copia di lavoro che nelle commit locali. Assicurati di volerlo davvero - altrimenti usa meglio una nuova filiale, questo salva i tuoi commit locali. E usa git stash
per salvare le modifiche che non sono ancora state impegnate .)
Modifica:
se hai un solo ramo locale e stai monitorando un ramo remoto, tutto ciò che devi fare è
git pull
dall'interno della directory di lavoro.
Ciò recupererà la versione corrente di tutti i rami remoti monitorati e aggiornerà il ramo corrente (e la directory di lavoro) alla versione corrente del ramo remoto che sta monitorando.