Estoy trabajando en una rama, digo rama "experimental" que me ramifico desde mi rama maestra. Luego, genero un modelo de usuario en la rama experimental, pero todavía no lo agrego al índice.
¿Qué tengo que hacer si quiero descartar todos los cambios de los archivos agregados recientemente en mi rama experimental? Los archivos sin seguimiento se enumeran a continuación:
$ git status
On branch new_chick
Untracked files:
(use "git add <file>..." to include in what will be committed)
.project
app/models/user.rb
db/migrate/
test/fixtures/users.yml
test/unit/user_test.rb
Intenté ejecutar "git reset --hard" con la esperanza de deshacer todos esos cambios, pero todavía se muestran todos los archivos anteriores.
¿Alguien, por favor, me arrojó algo de luz?
Respuestas:
Para eliminar archivos / directorios sin seguimiento, haga lo siguiente:
-f - fuerza
-d - directorios también
-x: también elimina los archivos ignorados (no lo uses si no quieres eliminar los archivos ignorados)
fuente
-x
con precaución porque eliminará los archivos de forma permanente. O use con-n
como lo menciona @Druska-x
Aún no se usó el .project y otros archivos de configuración se eliminaron. Tuve que extraer el repositorio nuevamente desde la última confirmación en un nuevo directorio.Enfoque interactivo del usuario:
-i para interactiva
-f para la fuerza
-d para el directorio
-x para ficheros ignorados (añadir, si es necesario)
Nota: Añadir -n o ---dry ejecutar simplemente comprobar lo que hará.
fuente
Esos son archivos sin seguimiento. Esto significa que git no los está rastreando. Solo los enumera porque no están en el archivo git ignore. Como no están siendo rastreados por git,
git reset
no los tocará.Si desea eliminar todos los archivos sin seguimiento, la forma más sencilla es
git clean -f
(usegit clean -n
en su lugar si desea ver lo que destruiría sin eliminar nada). De lo contrario, puede eliminar los archivos que no desea a mano.fuente
Para eliminar archivos sin seguimiento:
git clean -f
Para eliminar también directorios sin seguimiento, use:
git clean -f -d
Para prevenir cualquier paro cardíaco, utilice
git clean -n -f -d
fuente
También puede volver al estado anterior del repositorio local de otra manera:
git add
.git reset --hard
.fuente
El comando para tu rescate es
git clean
.fuente
Bueno, tuve un problema similar. Había tomado el último, pero hubo algunos cambios en el local debido a que la fusión no se estaba produciendo en un archivo en particular. El archivo no se rastreó y no los quería, así que lo que hice fue ...
$ git checkout ruta de archivo / nombre de archivo
filepath: la ubicación desde donde hice el git bash. luego, cuando tomé el último, los cambios estaban disponibles
fuente
Si
git clean
bien funciona bien, todavía me resulta útil usar mi propio script para limpiar el repositorio de git, tiene algunas ventajas.Esto muestra una lista de archivos que se deben limpiar, luego interactivamente solicita limpiar o no. Esto es casi siempre lo que quiero, ya que la solicitud interactiva por archivo se vuelve tediosa.
También permite el filtrado manual de la lista, lo que resulta útil cuando hay tipos de archivos que no desea limpiar (y tiene motivos para no comprometerse).
git_clean.sh
fuente