¿Desea que la carpeta de caché se excluya por completo del repositorio o solo su contenido?
Gareth
1
Supongo que el OP tiene múltiples directorios de caché, cuyo contenido debe ignorarse, pero quiere asegurarse de que esos directorios se creen para cualquier persona que clone el repositorio.
Mark Longair
@Gareth: dado que las carpetas vacías no se rastrean con git, si se ignora el contenido, la carpeta también lo será, ¿no?
eckes
3
Solo mencioné eso porque algunas personas usan archivos ocultos (comúnmente .gitkeep) para indicar un directorio que debe mantenerse
Gareth
2
¿Es /al final lo que lo hace saber que es un directorio que debe ignorar?
Charlie Parker el
Respuestas:
1595
Cree un archivo nombrado .gitignoreen el directorio de su proyecto. Omita los directorios ingresando el nombre del directorio en el archivo (con una barra inclinada adjunta):
En un indicador de cmd de Windows, puede usar 'editar .gitignore' o 'bloc de notas .gitignore' para crear el archivo correcto.
Joey Green
44
O también puede usar 'touch .gitignore' desde el símbolo del sistema de Windows git bash y eso creará el archivo con el nombre correcto que luego puede ser editado por el bloc de notas o similar ...
SGB
39
O simplemente cree un archivo llamado .gitignore. con el explorador y edítelo con el bloc de notas (se eliminará el punto final). De esa manera no tiene que usar el símbolo del sistema.
P. Galbraith
66
O podrías vim .gitignore desde la terminal. :)
MollyCat
34
O, que sorprendentemente no se ha mencionado a pesar de que es la forma más rápida, simplemente escriba "echo folder_to_ignore >> .gitignore" en la consola.
Godsmith
205
De forma predeterminada, el Explorador de Windows se mostrará .gitignorecuando, de hecho, el nombre del archivo sea .gitignore.txt.
Git no usará .gitignore.txt
Y no puede cambiar el nombre del archivo .gitignore, porque Windows Explorer cree que es un archivo de tipo gitignore sin nombre.
Solución sin línea de comando:
Puede cambiar el nombre de un archivo a ".gitignore". , y creará ".gitignore"
¿Eso funciona? Siempre le he dicho a la gente que abra el bloc de notas y en el cuadro de diálogo Guardar como escriba el nombre del archivo rodeado de comillas dobles, por ejemplo, ".gitignore"y lo guarda sin agregar automáticamente una extensión.
Arrowmaster
99
Ordenado. Incluir un período final sí funciona. Explorer elimina el último período, dando como resultado un archivo llamado ".gitignore". Sin embargo, creo que el método de las citas es más limpio y es menos probable que genere sorpresas.
Triynko
44
O, en el cuadro de diálogo Guardar como, cambie el tipo de archivo a "Todos los archivos ( . )"; Windows no agregará ninguna extensión.
OsakaWebbie
55
o en git bash simplemente escriba "touch .gitignore" en su carpeta
Rayjax
3
".gitignore."- Este es un gran truco! Siempre tuve problemas con .htaccess...
Obmerk Kronen
105
Parece que para ignorar archivos y directorios hay dos formas principales:
.gitignore
Colocando el .gitignorearchivo en la raíz de su repositorio además de la .gitcarpeta (en Windows, asegúrese de ver la extensión de archivo verdadera y luego haga .gitignore.(con el punto al final para hacer una extensión de archivo vacía))
Hacer la configuración global ~/.gitignore_globaly ejecutarla git config --global core.excludesfile ~/.gitignore_globalpara agregar esto a su configuración de Git
Nota: los archivos rastreados antes pueden rastrearse ejecutando git rm --cached filename
Exclusión de repositorio : para archivos locales que no necesitan compartirse, simplemente agregue el patrón de archivo o el directorio al archivo .git/info/exclude. Estas reglas no están comprometidas, por lo que no son vistas por otros usuarios . Más información está aquí .
Para hacer excepciones en la lista de archivos ignorados, vea esta pregunta .
buen trabajo señalando el git rm --cached <filename>. Absolutamente crítico para los repos que existían ANTES de crear el.gitignore
MaurerPower
2
git rm --cached <filename> solucionó el problema que tenía con .gitignore :)
JeremyFelix
1
Sí, git rm: el nombre de archivo en caché es absolutamente crucial. Me estaba volviendo loco ya que git todavía estaba organizando archivos que claramente dije que se ignorarían (creó gitignore después de la confirmación inicial). ¡Muchas gracias!
Potaito
1
Resuelto mi problema Git estaba rastreando la carpeta del proveedor en mi repositorio laravel a pesar de que había agregado la carpeta del proveedor en gitignore. Muchas gracias.
o simplemente agregue un extra .al final para que el explorador deje de pensar que .gitignorees la extensión. Luego, en la entrada, ese punto final sin extensión solo se come y te queda .gitignore TL; DR: intenta nombrarlo .gitignore.=> terminas con.gitignore
leerssej
43
Para indicarle a Git que ignore ciertos archivos o carpetas, debe crear el .gitignorearchivo.
Pero en el Explorador de Windows debe proporcionar un nombre para el archivo. Simplemente no puede crear un archivo con solo una extensión. El truco es crear un archivo de texto vacío e ir al símbolo del sistema y cambiar el nombre del archivo a .gitignore:
ren "New Text Document.txt" .gitignore
Ahora abra el archivo con su editor de texto favorito y agregue los nombres de archivo / carpeta que desea ignorar. También puede utilizar comodines como este: *.txt.
O type nul > .gitignorepara crear un archivo vacío
Castro Roy
O simplemente llame al archivo .gitignore.cuando las extensiones de archivo no estén ocultas en su explorador de Windows
Vairis
22
Si desea mantener una carpeta y no los archivos que contiene, simplemente coloque un archivo ".gitignore" en la carpeta con "*" como contenido. Este archivo hará que Git ignore todo el contenido del repositorio. Pero .gitignorese incluirá en su repositorio.
$ git add path/to/folder/.gitignore
Si agrega una carpeta vacía, recibirá este mensaje (.gitignore es un archivo oculto)
The following paths are ignored by one of your .gitignore files:
path/to/folder/.gitignore
Use -f if you really want to add them.
fatal: no files added
En Windows hay una trampa adicional con barras. Excluyendo un solo directorio en .gitignore con
dir_to_exclude /
posiblemente funcionará, pero excluyendo todos los directorios con
/ /
causa problemas cuando tiene nombres de archivo con espacios (como my file.txt) en su directorio: Git Bash escapa de estos espacios con una barra diagonal inversa (como my\ file.txt) y Git para Windows no distingue entre /y \.
Para excluir todos los directorios, mejor uso:
** /
Dos asteriscos consecutivos significan el contenido del directorio.
También en su \.git\infodirectorio de proyectos hay un archivo de exclusión que es efectivamente lo mismo que .gitignore(creo). Puede agregar archivos y directorios para ignorar en eso.
Para ignorar un directorio completo en Git, la forma más fácil es incluir un archivo .gitignore dentro del directorio de destino que simplemente contiene "*".
Cuando todo lo demás falla, intente editar el archivo
/.git/info/exclude
y agregando los directorios que desea al final del archivo, así:
# git ls-files --others --exclude-from=.git/info/exclude
# Lines that start with '#' are comments.
# For a project mostly in C, the following would be a good set of
# exclude patterns (uncomment them if you want to use them):
# *.[oa]
# *~
assets/
compiled/
Agregué las carpetas "activos" y "compiladas" a la lista de archivos y directorios para ignorar.
Esta es la mejor respuesta, también trae beneficios adicionales en la implementación y mantenimiento del proyecto.
Nitin ...
¿Quién es "simple" ?
Peter Mortensen
9
En Unix:
touch .gitignore
En Windows:
echo > .gitignore
Estos comandos ejecutados en una terminal crearán un .gitignorearchivo en la ubicación actual.
Luego simplemente agregue información a este .gitignorearchivo (usando Notepad ++, por ejemplo) qué archivos o carpetas deben ignorarse. Guarda tus cambios. Eso es :)
He tenido algunos problemas para que Git recoja el .gitignorearchivo en Windows. Sin $GIT_DIR/info/excludeembargo, el archivo siempre parece funcionar.
Sin embargo, la desventaja de este enfoque es que los archivos en el $GIT_DIRdirectorio no se incluyen en el registro y, por lo tanto, no se comparten.
ps $GIT_DIRes generalmente la carpeta oculta llamada.git
... con lo .gitignoreque describes. Esto te dará git statusresultados como:
$ git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .gitignore
# a-cache/
# b-cache/
... si los index.htmlarchivos aún no se han agregado al repositorio. (Git ve que hay archivos no ignorados en los directorios de caché, pero solo informa los directorios). Para solucionar esto, asegúrese de haber agregado y confirmado los index.htmlarchivos:
git add *cache/index.html
git commit -m "Adding index.html files to the cache directories"
... y tu git statusvoluntad se verá así:
$ git status
# On branch master
# Untracked files:
# (use "git add <file>..." to include in what will be committed)
#
# .gitignore
nothing added to commit but untracked files present (use "git add" to track)
(Obviamente, usted también quiere comprometerse .gitignore. Solo estaba siendo flojo con este caso de prueba).
Es probable que no quiere comprometerse .gitignore sobre todo porque es muy probable que desee realizar un seguimiento de los cambios a la misma, y también lo es su equipo (si está trabajando con una). Ver stackoverflow.com/a/767213/123033
Dave Everitt
2
@Dave Everitt: Esa es exactamente la razón por la que dije "Obviamente tú también quieres cometer .gitignore".
Mark Longair
6
En Windows y Mac, si desea ignorar una carpeta llamada Flower_Data_Folder en el directorio actual, puede hacer lo siguiente:
Tuve problemas similares. Trabajo en una cadena de herramientas de Windows con un repositorio compartido con chicos de Linux, y felizmente crean archivos con los mismos nombres (excepto los casos) en una carpeta determinada.
El efecto es que puedo clonar el repositorio e inmediatamente tengo docenas de archivos 'modificados' que, si me registrara, crearían estragos.
Tengo Windows configurado para mayúsculas y minúsculas y Git para no ignorar mayúsculas y minúsculas, pero todavía falla (aparentemente en las llamadas a la API Win32).
Si gitignore los archivos, entonces debo recordar no rastrear el archivo .gitignore.
El enlace parece estar roto (primero redirige a la versión 'https'): "Falló la conexión segura. Se produjo un error durante una conexión a archive.robwilkerson.org. PR_END_OF_FILE_ERROR"
Peter Mortensen
0
Simplemente cree el .gitignorearchivo en la carpeta de su proyecto y luego agregue el nombre de la carpeta en él, por ejemplo:
.gitkeep
) para indicar un directorio que debe mantenerse/
al final lo que lo hace saber que es un directorio que debe ignorar?Respuestas:
Cree un archivo nombrado
.gitignore
en el directorio de su proyecto. Omita los directorios ingresando el nombre del directorio en el archivo (con una barra inclinada adjunta):Más información está aquí .
fuente
De forma predeterminada, el Explorador de Windows se mostrará
.gitignore
cuando, de hecho, el nombre del archivo sea.gitignore.txt
.Git no usará
.gitignore.txt
Y no puede cambiar el nombre del archivo
.gitignore
, porque Windows Explorer cree que es un archivo de tipo gitignore sin nombre.Solución sin línea de comando:
fuente
".gitignore"
y lo guarda sin agregar automáticamente una extensión.".gitignore."
- Este es un gran truco! Siempre tuve problemas con.htaccess
...Parece que para ignorar archivos y directorios hay dos formas principales:
.gitignore
.gitignore
archivo en la raíz de su repositorio además de la.git
carpeta (en Windows, asegúrese de ver la extensión de archivo verdadera y luego haga.gitignore.
(con el punto al final para hacer una extensión de archivo vacía))~/.gitignore_global
y ejecutarlagit config --global core.excludesfile ~/.gitignore_global
para agregar esto a su configuración de GitNota: los archivos rastreados antes pueden rastrearse ejecutando
git rm --cached filename
Exclusión de repositorio : para archivos locales que no necesitan compartirse, simplemente agregue el patrón de archivo o el directorio al archivo
.git/info/exclude
. Estas reglas no están comprometidas, por lo que no son vistas por otros usuarios . Más información está aquí .Para hacer excepciones en la lista de archivos ignorados, vea esta pregunta .
fuente
git rm --cached <filename>
. Absolutamente crítico para los repos que existían ANTES de crear el.gitignore
Tuve algunos problemas al crear un archivo en el Explorador de Windows con un
.
al principio.Una solución alternativa era entrar en el shell de comandos y crear un nuevo archivo usando "editar".
fuente
.
al final para que el explorador deje de pensar que.gitignore
es la extensión. Luego, en la entrada, ese punto final sin extensión solo se come y te queda.gitignore
TL; DR: intenta nombrarlo.gitignore.
=> terminas con.gitignore
Para indicarle a Git que ignore ciertos archivos o carpetas, debe crear el
.gitignore
archivo.Pero en el Explorador de Windows debe proporcionar un nombre para el archivo. Simplemente no puede crear un archivo con solo una extensión. El truco es crear un archivo de texto vacío e ir al símbolo del sistema y cambiar el nombre del archivo a
.gitignore
:Ahora abra el archivo con su editor de texto favorito y agregue los nombres de archivo / carpeta que desea ignorar. También puede utilizar comodines como este:
*.txt
.fuente
type nul > .gitignore
para crear un archivo vacío.gitignore.
cuando las extensiones de archivo no estén ocultas en su explorador de WindowsSi desea mantener una carpeta y no los archivos que contiene, simplemente coloque un archivo ".gitignore" en la carpeta con "*" como contenido. Este archivo hará que Git ignore todo el contenido del repositorio. Pero
.gitignore
se incluirá en su repositorio.Si agrega una carpeta vacía, recibirá este mensaje (.gitignore es un archivo oculto)
Entonces, use "-f" para forzar la adición:
fuente
En Windows hay una trampa adicional con barras. Excluyendo un solo directorio en .gitignore con
posiblemente funcionará, pero excluyendo todos los directorios con
causa problemas cuando tiene nombres de archivo con espacios (como
my file.txt
) en su directorio: Git Bash escapa de estos espacios con una barra diagonal inversa (comomy\ file.txt
) y Git para Windows no distingue entre/
y\
.Para excluir todos los directorios, mejor uso:
Dos asteriscos consecutivos significan el contenido del directorio.
fuente
También en su
\.git\info
directorio de proyectos hay un archivo de exclusión que es efectivamente lo mismo que.gitignore
(creo). Puede agregar archivos y directorios para ignorar en eso.fuente
En caso de que necesite excluir subcarpetas, puede usar el
**
comodín para excluir cualquier nivel de subdirectorio.fuente
Para ignorar un directorio completo en Git, la forma más fácil es incluir un archivo .gitignore dentro del directorio de destino que simplemente contiene "*".
Un ejemplo ilustrativo
Sistema de ejemplo
Objetivo
Nivel superior .gitignore (/root/.gitignore)
Directorio ignorado .gitignore (/root/dirB.gitignore)
Y es así de simple :)
fuente
Cuando todo lo demás falla, intente editar el archivo
y agregando los directorios que desea al final del archivo, así:
Agregué las carpetas "activos" y "compiladas" a la lista de archivos y directorios para ignorar.
fuente
Puede crear el archivo ".gitignore" con el contenido:
Esto funciona para mi.
fuente
En Unix:
En Windows:
Estos comandos ejecutados en una terminal crearán un
.gitignore
archivo en la ubicación actual.Luego simplemente agregue información a este
.gitignore
archivo (usando Notepad ++, por ejemplo) qué archivos o carpetas deben ignorarse. Guarda tus cambios. Eso es :)Más información: .gitignore
fuente
He tenido algunos problemas para que Git recoja el
.gitignore
archivo en Windows. Sin$GIT_DIR/info/exclude
embargo, el archivo siempre parece funcionar.Sin embargo, la desventaja de este enfoque es que los archivos en el
$GIT_DIR
directorio no se incluyen en el registro y, por lo tanto, no se comparten.fuente
Supongo que el problema es que su árbol de trabajo es como:
... con lo
.gitignore
que describes. Esto te darágit status
resultados como:... si los
index.html
archivos aún no se han agregado al repositorio. (Git ve que hay archivos no ignorados en los directorios de caché, pero solo informa los directorios). Para solucionar esto, asegúrese de haber agregado y confirmado losindex.html
archivos:... y tu
git status
voluntad se verá así:(Obviamente, usted también quiere comprometerse
.gitignore
. Solo estaba siendo flojo con este caso de prueba).fuente
En Windows y Mac, si desea ignorar una carpeta llamada Flower_Data_Folder en el directorio actual, puede hacer lo siguiente:
Si es un archivo llamado
data.txt
:Si es una ruta como "Data / passwords.txt"
fuente
Tuve problemas similares. Trabajo en una cadena de herramientas de Windows con un repositorio compartido con chicos de Linux, y felizmente crean archivos con los mismos nombres (excepto los casos) en una carpeta determinada.
El efecto es que puedo clonar el repositorio e inmediatamente tengo docenas de archivos 'modificados' que, si me registrara, crearían estragos.
Tengo Windows configurado para mayúsculas y minúsculas y Git para no ignorar mayúsculas y minúsculas, pero todavía falla (aparentemente en las llamadas a la API Win32).
Si gitignore los archivos, entonces debo recordar no rastrear el archivo .gitignore.
Pero encontré una buena respuesta aquí:
http://archive.robwilkerson.org/2010/03/02/git-tip-ignore-changes-to-tracked-files/index.html
fuente
Simplemente cree el
.gitignore
archivo en la carpeta de su proyecto y luego agregue el nombre de la carpeta en él, por ejemplo:fuente