Forza la sovrascrittura del file locale con il repository di origine?


224

Voglio ottenere l'ultimo file presente nel repository e sovrascrivere ciò che ho localmente. Come posso farlo con il client Git?

Risposte:


443

Se si desidera sovrascrivere un solo file:

git fetch
git checkout origin/master <filepath>

Se si desidera sovrascrivere tutti i file modificati:

git fetch
git reset --hard origin/master

(Ciò presuppone che tu stia lavorando a masterlivello locale e desideri i cambiamenti sull'origine master- se sei su un ramo, sostituiscilo invece.)


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

git fetch git reset --hard origin/masteroppure/<branch name>
adrian filipescu,

È fantastico ... Esattamente quello che stavo cercando. Grazie
Thiago Passos,

Non sono sicuro di cosa abbia fatto @C_Rod, ma ciò non può influire sul repository
Brad Mace,

26

Versione più semplice, supponendo che tu stia lavorando sullo stesso ramo in cui si trova il file desiderato:

git checkout path/to/file.

Lo faccio così spesso che ho impostato un alias gc='git checkout'.


4
Semplice, elegante e fa il lavoro. Ricorda solo di 'git fetch' prima.
Almir Campos,

6
git checkout path/to/fileha funzionato per me. Inoltre, ho trovato questo diagramma molto utile per capire concettualmente cosa git checkoutsta facendo. link
Cale Sweeney,

9

Questo ha funzionato per me:

git reset HEAD <filename>

Ho visto diverse soluzioni, ma questa è la più efficace, grazie
Calvin Zhou,

3

La sincronizzazione completa ha alcune attività:

  • ripristinare le modifiche
  • rimozione di nuovi file
  • ottenere le ultime dal repository remoto

git reset HEAD --hard

git clean -f

git pull origin master

Altrimenti, ciò che preferisco è che, potrei creare una nuova filiale con le ultime dal telecomando usando:

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

origin è il mio riferimento al repository remoto e master è il mio nome di ramo considerato. Questi potrebbero essere diversi dai tuoi.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.