mac - git repository
.gitignore ignora todos los archivos y luego recursivamente permite*.foo (1)
Su problema es que el patrón /*
al principio coincide con todos los archivos y directorios en el nivel superior, incluido testdir
, por lo que todo lo que se encuentra dentro de testdir
se ignora.
Esto es lo que quieres:
# Ignore everything
*
# Don''t ignore directories, so we can recurse into them
!*/
# Don''t ignore .gitignore and *.foo files
!.gitignore
!*.foo
Cuando haces un git add .
con esta configuración, debería encontrar que solo *.foo
archivos .gitignore
y *.foo
listados como cambios para confirmar.
Ya hay varias preguntas similares a esta, pero ninguna de las respuestas funciona para mí.
Quiero ignorar todo lo que se encuentra en las carpetas debajo de mi repositorio, excepto los archivos con * .foo
(Si alguien se pregunta cómo se puede justificar esto, en realidad estoy creando un repositorio git para todos mis proyectos "Logic" (software de música en el mac), pero solo quiero almacenar los archivos reales del proyecto * .logic)
Voy a explicarlo, así que todos estamos en el mismo plato. Esto es lo que hago, comenzando desde cero:
Preparar:
mkdir temp
cd temp
mkdir testdir
cd testdir
touch include.foo
touch dontinclude.bad
cd..
git init
touch .gitignore
Pega esto en .gitignore
# Ignore all
/*
# But not these files...
!.gitignore
!*.foo
estado de git
Y el único archivo sin seguimiento es .gitignore
si escribí ''git añadir'' - sin cambios, solo se ve .gitignore y mis 2 archivos se ignoran.
¿Por qué no funciona esto y cómo puede cambiar el procedimiento anterior para que funcione?
Aquí está la pregunta extremadamente similar de donde obtuve el archivo .gitignore. Estoy usando git --version 1.7.7 (también probé 1.7.3) - .gitignore para ignorar todos los archivos, luego recursivamente permite archivos de cierto tipo