2010-10-16 23 views

risposta

285

Se si desidera sovrascrivere solo un file:

git fetch 
git checkout origin/master <filepath> 

Se si desidera sovrascrivere tutti file modificati:

git fetch 
git reset --hard origin/master 

(questo presuppone che si sta lavorando a livello locale e master vuoi le modifiche all'origine master - se sei su un ramo, sostituiscilo invece.)

+0

git checkout funziona con le directory – mayu

+0

Questo ha fatto il contrario. Ha sovrascritto il repository con i miei file locali erroneamente. –

+0

'git fetch git reset --hard origin/master' o'/ ' –

1

Fu ll sincronizzazione ha pochi compiti:

  • annullamento di modifiche
  • rimozione di nuovi file
  • Leggi ultima dal repository remoto

ripristino git TESTA --hard

git -f pulita

git pull master originale

Oppure, quello che preferisco è che, io possa creare un nuovo ramo con le ultime dal remoto utilizzando:

git checkout origin/master -b <new branch name> 

origine è il mio riferimento repository remoto, e il padrone è il mio nome ramo considerato . Questi possono essere diversi dai tuoi.

6

versione più semplice, supponendo che si sta lavorando sullo stesso ramo che il file che si desidera è il:

git checkout path/to/file.

Faccio questo così spesso che ho un alias impostato su gc='git checkout'.

+1

Semplice, elegante, e fa il lavoro. Ricordati di 'git fetch' prima. –

+1

'git checkout path/to/file' ha funzionato per me. Inoltre, ho trovato questo diagramma molto utile per comprendere concettualmente cosa sta facendo 'git checkout'. [Link] (http://images.osteele.com/2008/git-transport.png) –

Problemi correlati