Estoy trabajando con SourceTree y me gustaría restablecer todos los cambios que he hecho en mi copy de trabajo.
Para algunas testings, creé tres files de class Java, uno nuevo, uno que he actualizado y el último que he eliminado de mi copy de trabajo:
New.java Update.java Remove.java
Restablecer Todo funciona bien para el file de class eliminado y actualizado, pero no para el nuevo:
Después del reinicio tengo que eliminar la class New.java
manual:
Resumido:
Después de Restablecer Todas las actualizaciones en el file Update.java
desaparecieron y el file Remove.java
eliminado se restauró. ¡Perfecto! Lo único que no entendí es por qué tengo que eliminar el nuevo file New.java
manualmente? ¿Podría ser que tengo algún malentendido?
¡Gracias por adelantado!
Si New.java es un file nuevo que nunca se ha creado, git reset nunca eliminará ese file ya que git no sabe qué hacer con él. Efectivamente, New.java es un file sin seguimiento y git no le hará nada a este file hasta que lo agregue al escenario.
No conozco SourceTree, pero creo que 'Reset All' es como hacer el git checkout .
que revertirá todos los files rastreados como usted describió. Para eliminar files sin seguimiento, el equivalente de la command-line sería git clean -f
o si los directorys están afectados git clean -fd
y también include files ignorados por .gitignore
y git clean -fdx
similares. Así que supongo que buscas una opción Clean All
en SourceTree para deshacerte de los files sin seguimiento.