Domanda

C'è un comando git per ripristinare tutte le modifiche non in un albero di lavoro e l'indice ed a anche rimuovere i file e le cartelle appena creati?

È stato utile?

Soluzione

È possibile eseguire questi due comandi:

# Revert changes to modified files.
git reset --hard

# Remove all untracked files and directories. (`-f` is `force`, `-d` is `remove directories`)
git clean -fd

Altri suggerimenti

Se si desidera ripristinare le modifiche solo nella directory di lavoro corrente, l'uso

git checkout -- .

E prima ancora, è possibile elencare i file che verranno per conversione senza in realtà fare alcuna azione, solo per controllare che cosa accadrà, con:

git checkout --

Usa "git checkout - ..." per i cambiamenti di scarto nella directory di lavoro

git checkout -- app/views/posts/index.html.erb

o

git checkout -- *

rimuove tutte le modifiche apportate ai file in git unstaged stato ad esempio

modified:    app/controllers/posts.rb
modified:    app/views/posts/index.html.erb

Un modo non banale è quello di eseguire questi due comandi:

  1. git stash Ciò sposterà le modifiche alla scorta, è riportare allo stato di HEAD
  2. git stash drop Questo cancellerà l'ultimo nascondiglio creato nel l'ultimo comando.
git clean -fd

non ha aiutato, i nuovi file sono rimasti. Quello che ho fatto è completamente cancellando tutti i albero di lavoro e quindi

git reset --hard

Vedere " Come faccio cancellare la mia directory di lavoro locale in git " per un consiglio di aggiungere l'opzione -x da pulire:?

git clean -fdx

Nota bandiera -x rimuoverà tutti i file ignorati da Git quindi fate attenzione (si veda la discussione nella risposta mi riferisco a).

Penso che si può utilizzare il seguente comando: git reset --hard

Si prega di notare che ci potrebbero essere ancora i file che non sembrano scomparire - potrebbero essere inediti, ma git potrebbe averli contrassegnato come in fase di modifica a causa di CRLF / LF cambia. Vedi se hai fatto alcuni cambiamenti nella .gitattributes di recente.

Nel mio caso ho aggiunto le impostazioni CRLF nel file .gitattributes e tutti i file rimasti nel "file modificati" lista a causa di questo. La modifica delle impostazioni .gitattributes li ha fatti sparire.

Se si dispone di un cambiamento non impegnati (il suo unico nella vostra copia di lavoro) che si desidera ripristinare la copia nel suo ultimo commettere, procedere come segue:

git checkout filename

Si può semplicemente utilizzare seguente comando git che può tornare tutte le modifiche non apportate nel repository:

git checkout .

Esempio:

ABC@ABC-PC MINGW64 /c/xampp/htdocs/pod_admin (master)
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.

Changes not staged for commit:
  (use "git add <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

        modified:   application/controllers/Drivers.php
        modified:   application/views/drivers/add.php
        modified:   application/views/drivers/load_driver_info.php
        modified:   uploads/drivers/drivers.xlsx

no changes added to commit (use "git add" and/or "git commit -a")

ABC@ABC-PC MINGW64 /c/xampp/htdocs/pod_admin (master)
$ git checkout .

ABC@ABC-PC MINGW64 /c/xampp/htdocs/pod_admin (master)
$ git status
On branch master
Your branch is up-to-date with 'origin/master'.

nothing to commit, working tree clean

Git 2.23 comando git restore introdotta per ripristinare i file di lavoro degli alberi.

https://git-scm.com/docs/git-restore

Per ripristinare tutti i file nella directory corrente

git ripristino.

Se si desidera ripristinare tutti i file sorgente C per corrispondere alla versione nell'indice, si può fare

git ripristinare '* .c'

Un modo sicuro e lunga:

  1. git branch todelete
  2. git checkout todelete
  3. git add .
  4. git commit -m "I did a bad thing, sorry"
  5. git checkout develop
  6. git branch -D todelete

Io di solito uso in questo modo che funziona bene:

mv fold/file /tmp
git checkout fold/file

Usa:

git reset HEAD filepath

Ad esempio:

git reset HEAD om211/src/META-INF/persistence.xml
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top