2012-08-23 12 views
14

Supponendo che nulla è in scena, qual è il modo consigliato per ripristinare tutto il lavoro che hai fatto, ad eccezione dei file: esistonoCome git resettare tutto, ma --hard 4 file

app/models/a.rb 
app/views/a/index.html.rb 
config/foo.rb 
config/bar.rb 

Altri file sporchi in app/models/and app/views/che non voglio mantenere.

risposta

20

Come lei ha descritto il problema, non sembra come si vuole fare reset. La cosa più semplice per è:

git add app/models/a.rb app/views/a/index.html.rb config/foo.rb config/bar.rb 
git checkout . 

così, aggiunge i tuoi file in 4 l'indice, e controlli fuori versioni pulite (cioè scarta le modifiche) per altri file.

Suppongo che non abbiate messo in scena i file modificati (git add) prima (dovreste quindi liberarlo usando reset).

+0

Penso che preferisco questo w/'git clean -fd' –

+0

Sì, è diverso -' checkout' funziona con i file tracciati, 'clean' con untracked. – kan

9

Un modo è quello di git commit quei quattro file, quindi reimpostare duro, e quindi annullare il commit:

git add <files to keep> 
git commit -m "temp" 
git reset --hard 
git reset HEAD~ 
4

Se questi quattro file sono nell'indice mentre i file sporchi non sono, un semplice git-clean dovrebbe fare il trucco In caso di dubbi, utilizzare prima lo switch --dry-run e notare lo switch --exclude.

In caso contrario, bastone con siride's answer

Problemi correlati