¿Cuáles son las diferencias entre .gitignore
y .gitkeep
? ¿Son lo mismo con un nombre diferente, o ambos cumplen una función diferente?
Parece que no puedo encontrar mucha documentación sobre .gitkeep
.
.gitkeep
no está documentado, porque no es una característica de Git.
Git no puede agregar un directorio completamente vacío . Las personas que desean rastrear directorios vacíos en Git han creado la convención de poner archivos llamados.gitkeep
en estos directorios. El archivo podría llamarse de cualquier forma; Git no asigna ningún significado especial a este nombre.
Existe una convención competitiva de agregar un .gitignore
archivo a los directorios vacíos para rastrearlos, pero algunas personas ven esto como confuso ya que el objetivo es mantener los directorios vacíos, no ignorarlos; .gitignore
también se usa para enumerar archivos que Git debe ignorar al buscar archivos sin seguimiento.
README
archivo en el subdirectorio vacío que contiene un poco de información sobre para qué se va a utilizar ese subdirectorio? Parece confuso tener un archivo llamado.gitkeep
que en realidad no es parte de git..gitignore
archivo con dos líneas:*
y!.gitignore
es más que suficiente claridad para transmitir lo que está sucediendo. Si se necesita más elaboración, agregue un comentario en la parte superior del archivo utilizando la#
sintaxis..keep
archivos en lugar de.gitkeep
preservar estas carpetas vacías, ya que git no es el único sistema de control de fuente que no rastrea carpetas vacías. Más detalles aquí: github.com/rails/rails/issues/2800.gitkeep
es solo un marcador de posición. Un archivo ficticio, por lo que Git no se olvidará del directorio, ya que Git solo rastrea archivos.Si desea un directorio vacío y asegúrese de que permanezca "limpio" para Git, cree uno que
.gitignore
contenga las siguientes líneas:Si desea tener un solo tipo de archivos visibles para Git, aquí hay un ejemplo de cómo filtrar todo, excepto .gitignore y todos los
.txt
archivos:('#' indica comentarios).
fuente
!
delante.gitignore
? ¿Es eso para escapar del punto?!
niega la siguiente parte, como suele ocurrir en la programación.!.gitignore
un archivo de ignorar git, ya sea agregar el archivo y luego editarlo, o forzarlo a agregarlo con el contenido apropiado ("*" para ignorar todo, o nada para asegurarse de que la carpeta exista) más ejemplos .Since the git ignore file is already in the repo it is not necessary to not-ignore it - it is already tracked.
------ Si no es así, y no hace un agregado contundente, puede olvidarlo. En casos triviales, no hay problema, pero si es un archivo más grande puede estar molesto. El uso!.gitignore
evita que te dispares en el pie. Lo prefiero, habiéndome quemado en el pasado.es un archivo de texto que comprende una lista de archivos en su directorio que git ignorará o no agregará / actualizará en el repositorio.
Dado que Git elimina o no agrega directorios vacíos a un repositorio, .gitkeep es una especie de truco (no creo que se llame oficialmente como parte de Git) para mantener directorios vacíos en el repositorio.
Simplemente haga una
touch /path/to/emptydirectory/.gitkeep
para agregar el archivo, y Git ahora podrá mantener este directorio en el repositorio.fuente
.gitignore
s como desee, si no desea especificar la ruta completa a cada carpeta cada vez..gitkeep
archivo, pero no rastreará directorios vacíos, solo la carpeta rastreará donde.gitkeep
exista el archivo. porque ?.gitignore
especificar la ruta completa a cada carpeta cada vez? Creo que me falta algo obvio.