2010-11-06 9 views
31

He bifurcado un proyecto en github y he empezado a jugar con él en mi propia máquina, quiero confirmar los cambios que he realizado a mi tenedor en github pero sin cometer los cambios que he realizado en el archivo .cfg, ya que este contiene cosas como contraseña db etcCómo decirle a git que ignore todas las ediciones posteriores en un solo archivo sin eliminarlo del repositorio

+0

posible duplicado de [Ignorar archivos modificados (pero no confirmados) en git?] (Http://stackoverflow.com/questions/655243/ignore-modified-but-not-committed-files-in-git) – Cascabel

+0

There son probablemente muchos más duplicados alrededor; puedes buscar la respuesta (update-index --assume-unchanged) y encontrar todo tipo de cosas. – Cascabel

Respuesta

60

Utilice esta:

git update-index --skip-worktree path/file.cfg 

y restaurar:

git update-index --no-skip-worktree path/file.cfg 

Por último, si desea listar los archivos que están marcados con skip-worktree:

git ls-files -v | grep ^S | awk '{print $2}' 

Para simplificar, se puede crear un alias para que en su $HOME/.gitconfig:

[alias] 
    ls-ignored-changes = !git ls-files -v | grep ^S | awk '{print $2}' 

Entonces se puede escribir simplemente git ls-ignored-changes. Incluso funciona con autocompletar si tiene el git-completion en su lugar (para bash, tcsh, zsh).

+0

Heya, ya lo he intentado, entonces cuando voy a comprometerlo, está listo para comprometerse. ¿O eso solo detiene que sea empujado cuando presiono? –

+2

@Gabriel Baker: eso es porque ya has organizado el archivo. Desestabilizarlo usando 'git reset path/file.cfg'. – jweyrich

+1

¡Desearía poder darte más de 1 voto favorable para esta súper información útil, gracias de nuevo! – DrCord

Cuestiones relacionadas