Cómo git esconder cambios en la carpeta actual

Me gustaría esconder los cambios solo los cambios en la carpeta actual y sus subcarpetas. ¿Cómo puedo lograr eso?

Probé el enfoque obvio: git stash . pero parece que no funciona

Sé que puedo crear commits temporales y eliminarlos después, pero quiero saber si git stash admite esconder carpetas específicas.

git stash no te permitirá save directorys parciales con un solo command, pero hay algunas alternativas.

Puede usar git stash -p para seleccionar solo los diffs que quiere esconder.

Si el resultado de git stash -p es enorme y / o desea una solución de secuencias de commands, y es aceptable crear compromisos temporales, puede crear una confirmación con todos los cambios, excepto los que están en el subdirectory, y luego almacenar los cambios, y rebobinar el compromiso. En codigo:

 git add -u :/ # equivalent to (cd reporoot && git add -u) without changing $PWD git reset HEAD . git commit -m "tmp" git stash # this will stash only the files in the current dir git reset HEAD~ 

Esto debería funcionar para usted:

 cd <repo_root> git add . # add all changed files to index cd my_folder git reset . # except for ones you want to stash git stash -k # stash only files not in index git reset # remove all changed files from index 

Básicamente, agrega todos los files modificados al índice, a exception de la carpeta (o files) que desea esconder. Luego los --keep-index utilizando -k ( --keep-index ). Y finalmente, restablece el índice al lugar donde comenzó.

Podrías echar un vistazo a una de las interfaces git de GUI como SourceTree o TortoiseGit, este tipo de cosas es lo que yo personalmente voy a tortuga porque acaba siendo mucho más rápido que tratar de hacer muchos commands de command-line.