¿Puedo decirle a git que ignore los archivos que se modifican (eliminan) pero que no deberían confirmarse?
La situación es que tengo un subdirectorio en el repositorio que contiene cosas que no me interesan en absoluto, así que lo eliminé para evitar que aparezca en autocompletados y similares (en el IDE).
Pero ahora, si agrego esa carpeta a .gitignore, simplemente nada cambia, todo se muestra como eliminado por el estado de git.
¿Hay alguna manera de hacer que git lo ignore de cualquier manera?
(Alternativamente, como estoy usando git-svn, ¿podría confirmar los cambios en el git local y asegurarme de que no se pasen al repositorio svn?)
Respuestas:
echa un vistazo a la página de manual de git-update-index y el bit --asumir-sin cambios y relacionado.
cuando tengo tu problema hago esto
o un archivo específico
fuente
git update-index --no-assume-unchanged config/database.yml
--assume-unchanged
.Una opción más nueva y mejor es la
git update-index --skip-worktree
que no se perderá en un restablecimiento completo o un nuevo cambio de un tirón.Consulte la página de manual en http://schacon.github.com/git/git-update-index.html
Y una comparación en http://fallengamer.livejournal.com/93321.html
fuente
skip-worktree
, encontrar estos archivos es un poco engorroso. La única forma que conozco esgit ls-files -v |grep -v '^H'
. Además, muchas herramientas GUI no conocen esta característica y pueden producir errores divertidos si, por ejemplo,checkout
falla debido a archivos modificados "ocultos".Usa este código
fuente
Los archivos rastreados no se pueden ignorar, por lo que primero deberá eliminarlos de su índice. Agregue un
.gitignore
que ignore los directorios que no desea, luego bórrelos y elimine los rezagados congit rm --cached
.fuente
Lo que suelo hacer es
fuente