Ignorar directorios en repositorios Git en Windows


¿Cómo puedo ignorar directorios o carpetas en Git usando msysgit en Windows?

Author: Gurwinder Singh, 2008-12-05

17 answers

Crea un archivo llamado .gitignore en el directorio de tu proyecto. Ignore los directorios introduciendo el nombre del directorio en el archivo (con una barra inclinada anexa):

dir_to_ignore/

Más información aquí .

 1229
Author: stew,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-30 18:11:30

Por defecto el explorador de Windows mostrará .gitignore cuando de hecho el nombre del archivo es .gitignore.txt

Git no usará .gitignore.txt

Y no puede cambiar el nombre del archivo a .gitignore porque explorer piensa que es un archivo de tipo gitignore sin nombre.

Solución sin línea de comandos:

You can rename a file to ".gitignore." and it will create ".gitignore"
 171
Author: brainwavedave,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-08 17:25:07

Parece que para ignorar archivos y directorios hay dos formas principales:

  1. .gitignore

    • Colocando el archivo .gitignore en la raíz de su repositorio además de la carpeta .git (en Windows asegúrese de que vea la verdadera extensión de archivo y luego haga .gitignore. (con el punto al final para hacer una extensión de archivo vacía) )
    • Haciendo la configuración global ~/.gitignore_global y ejecutando git config --global core.excludesfile ~/.gitignore_global para agregar esto a tu configuración de git

    Nota: archivos rastreados antes puede ser untracked ejecutando git rm --cached filename

  2. Repo exclude - Para los archivos locales que no necesitan ser compartidos, 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 aquí

[actualizado] Para hacer excepciones en la lista de archivos ignorados, vea esta pregunta.

 86
Author: Vairis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-08 22:15:54

Tuve algunos problemas para crear un archivo en el explorador de Windows con una. al principio.

Una solución alternativa era entrar en el commandshell y crear un nuevo archivo usando "edit"

 42
Author: sf.,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-07-10 04:36:02

Para indicar a GIT que ignore ciertos archivos o carpetas, debe crear .gitignore archivo.

Pero en el explorador de Windows debe proporcionar un nombre para el archivo, simplemente no puede crear un archivo con solo 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 puedes usar comodines como este *.txt

Espero que responda a su pregunta

 40
Author: Mahes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2010-03-25 18:14:52

Si desea mantener una carpeta y no los archivos dentro de ella, simplemente ponga un ".gitignore" archivo en la carpeta con "*" como contenido. Este archivo ignorará todo el contenido del repositorio. Pero .gitignore se 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

Entonces, use "- f " para forzar agregar:

$ git add path/to/folder/.gitignore -f
 18
Author: sensorario,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-04-11 17:36:11

En Windows hay una captura extra con barras. Excluyendo un solo directorio en .gitignore con

Dir_to_exclude /

Posiblemente funcionará, pero excluyendo todos los directorios con

/

Causa problemas cuando tienes nombres de archivo con espacios (como my file.txt) en tu directorio: Git bash escapa estos espacios con una barra invertida (como my\ file.txt) y Git para Windows no distingue entre / y \.

Para excluir todos directorios mejor uso:

**/

Dos asteriscos consecutivos significan el contenido del directorio.

 14
Author: wortwart,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-01-13 13:49:49

También en su directorio de proyectos \.git\info hay un archivo exclude que es efectivamente lo mismo que .gitignore (creo). Puede agregar archivos y directorios para ignorar en eso.

 14
Author: Si3,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-04-08 17:24:37

He tenido algunos problemas para conseguir git para recoger el.archivo gitignore en Windows. Sin embargo, el archivo G GIT_DIR/info/exclude siempre parece funcionar. La desventaja de este enfoque, sin embargo, es que los archivos en el directorio G GIT_DIR no se incluyen en el check-in, y por lo tanto no se comparten.

(p. s. G GIT_DIR suele ser la carpeta oculta nombrada.git)

 7
Author: Jason,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-02-15 19:43:43

Puede crear el ".gitignore " archivo con el contenido:

*
!.gitignore

Funciona para mí y simples.

 7
Author: Claudionor Oliveira,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-02-05 14:27:04

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

/root/
    .gitignore
    /dirA/
        someFile1.txt
        someFile2.txt
    /dirB/
        .gitignore
        someFile3.txt
        someFile4.txt

Objetivo

  • ignora el contenido de/dirB /

Nivel Superior .gitignore (/root/.gitignore)

  • Aquí es donde va tu información estándar de gitignore

Directorio Ignorado .gitignore (/root / dirB.gitignore)

  • Este archivo solo se lee como '*' y el directorio se ignora completamente, en sí mismo y todos los archivos!

Y es así de simple:)

 6
Author: J-Dizzle,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-12-25 20:45:28

Asumo que el problema es que tu árbol de trabajo es como:

a-cache/foo
a-cache/index.html
b-cache/bar
b-cache/foo
b-cache/index.html
.gitignore

... con el .gitignore que usted describe. Esto le dará git status salida 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 archivos index.html aún no se han añadido al repositorio. (git ve que hay archivos sin identificar en los directorios de caché, pero solo informa de los directorios. Para arreglar esto, asegúrese de haber agregado y confirmado los archivos index.html:

git add *cache/index.html
git commit -m "Adding index.html files to the cache directories"

... y su git status entonces mirará como:

$ 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 quieres confirmar .gitignore también, estaba siendo perezoso con este caso de prueba.)

 5
Author: Mark Longair,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-06-29 10:19:01

En caso de que necesite excluir subcarpetas, puede usar el comodín ** para excluir cualquier nivel de subcarpeta.

**/build/output/Debug/
 5
Author: Eat at Joes,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-02-17 00:40:58

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/

He añadido las carpetas "assets" y "compiled" a la lista de archivos y directorios a ignorar.

 4
Author: Xedret,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-04-04 21:38:12

En Unix:

touch .gitignore

En Windows:

echo > .gitignore

Estos comandos ejecutados en una terminal crearán un archivo .gitignore en la ubicación actual.

Luego simplemente agregue información a este archivo .gitignore (usando Notepad++ por ejemplo) qué archivos o carpetas deben ignorarse. Guarda tus cambios. Eso es todo:)

Más información: https://www.atlassian.com/git/tutorials/saving-changes/gitignore

 2
Author: fvolodimir,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-07-25 08:25:53

En Windows y Mac, si desea ignorar una carpeta llamada Flower_Data_Folder en el directorio actual, puede hacer:

Echo Flower_Data_Folder >> .gitignore

Si es un archivo llamado data.txt

Datos de eco.txt >> .gitignore

Si es una ruta como "Data/passwords.txt "

Echo "Datos/contraseñas.txt">> .gitignore.

 2
Author: Olusola Omosola,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-08-14 11:17:42

Tuve problemas similares, trabajo en una cadena de herramientas de Windows con un repositorio compartido con los chicos de Linux, crean archivos con los mismos nombres [excepto los casos] en una carpeta dada.

El efecto es que puedo clonar el repositorio e inmediatamente tener docenas de archivos 'modificados' que si me registraba crearían estragos.

Tengo Windows configurado para distinguir entre mayúsculas y minúsculas y git para no ignorar mayúsculas y minúsculas, pero todavía falla (en las llamadas a la api de win32 aparentemente).

Si gitignore los archivos entonces tengo para 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

Chris

 1
Author: Chris Aaaaa,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-08-06 15:01:49