windows - una - ignorar carpetas en git
Ignorando directorios en repositorios Git en Windows (17)
¿Cómo puedo ignorar directorios o carpetas en Git usando msysgit en Windows?
Cree un archivo llamado .gitignore
en el directorio de su proyecto. Ignore los directorios ingresando el nombre del directorio en el archivo (con una barra anexada):
dir_to_ignore/
Más información here .
Cuando todo lo demás falla intente editar el archivo
/.git/info/exclude
y agregando los directorios que desea al final del archivo, como este:
# 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 "elementos" y "compilé" a la lista de archivos y directorios para ignorar.
En Unix:
touch .gitignore
En Windows:
echo > .gitignore
Estos comandos ejecutados en un 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 :)
Más información: https://www.atlassian.com/git/tutorials/saving-changes/gitignore
En Windows hay una captura extra con barras diagonales. Excluyendo un solo directorio en .gitignore con
dir_to_exclude /
Posiblemente funcione, pero excluyendo todos los directorios con
/
causa problemas cuando tiene nombres de archivos con espacios (como my file.txt
) en su 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 los directorios mejor uso:
** /
Dos asteriscos consecutivos significan los contenidos del directorio.
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
echo data.txt >> .gitignore
si es una ruta como "Data / passwords.txt"
echo "Datos / contraseñas.txt" >> .gitignore.
En caso de que necesite excluir subcarpetas, puede usar el comodín **
para excluir cualquier nivel de subdirectorio.
**/build/output/Debug/
He tenido algunos problemas para que git extraiga el archivo .gitignore en Windows. Sin embargo, el archivo $ GIT_DIR / info / exclude siempre parece funcionar. La desventaja de este enfoque, sin embargo, es que los archivos en el directorio $ GIT_DIR no se incluyen en el registro, y por lo tanto no se comparten.
(ps $ GIT_DIR suele ser la carpeta oculta llamada .git)
Para ignorar un directorio completo en git, la forma más sencilla 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
Gol
- ignorar los contenidos de / dirB /
Nivel superior .gitignore (/root/.gitignore)
- Aquí es donde va su información estándar de gitignore
Directorio ignorado .gitignore (/root/dirB.gitignore)
- ¡Este archivo solo se lee como ''*'' y el directorio se ignora por completo, en sí mismo y en todos los archivos!
y es así de simple :)
Para indicar a GIT que ignore ciertos archivos o carpetas, debe crear el archivo .gitignore
.
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 puedes usar comodines como este *.txt
espero que te responda tu pregunta
Parece que para ignorar archivos y directorios hay dos formas principales:
.gitignore
- Colocar el archivo
.gitignore
en la raíz de su repositorio junto a la carpeta.git
(en Windows, asegúrese de ver la verdadera extensión del archivo y luego haga.gitignore.
(con el punto al final para hacer la extensión del archivo vacía)) -
~/.gitignore_global
configuración global~/.gitignore_global
y ejecutegit config --global core.excludesfile ~/.gitignore_global
para agregar esto a su configuración de git
nota: los archivos rastreados antes se pueden desmarcar ejecutando
git rm --cached filename
- Colocar el archivo
Exclusión de repo : para los archivos locales que no es necesario compartir, simplemente agregue el patrón de archivo o el directorio al archivo
.git/info/exclude
. Estas reglas no están comprometidas, por lo que otros usuarios no las ven más información here
[actualizado] Para hacer excepciones en la lista de archivos ignorados, vea esta pregunta .
Por defecto, el explorador de Windows mostrará .gitignore
cuando, de hecho, el nombre del archivo sea .gitignore.txt
Git no utilizará .gitignore.txt
Y no puede cambiar el nombre del archivo a .gitignore
porque explorer cree que es un archivo de tipo gitignore sin nombre.
Solución de línea de comando no:
You can rename a file to ".gitignore." and it will create ".gitignore"
Puedes crear el archivo ".gitignore" con el contenido:
*
!.gitignore
Funciona para mí y los simples.
Si desea mantener una carpeta y no los archivos que contiene, simplemente coloque un archivo ".gitignore" 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, usa "-f" para forzar agregar:
$ git add path/to/folder/.gitignore -f
Supongo que el problema es que su á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
usted describe. Esto te dará una salida de git status
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 agregado al repositorio. (git ve que hay archivos sin identificar en los directorios del caché, pero solo informa los directorios). Para solucionar 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 tu git status
se verá 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, usted también quiere cometer .gitignore
, yo solo estaba siendo perezoso con este caso de prueba).
También en su /.git/info
projects hay un archivo de exclusión que es efectivamente lo mismo que .gitignore
(creo). Puede agregar archivos y directorios para ignorar en eso.
Tuve algunos problemas para crear un archivo en el explorador de Windows con un archivo. al principio.
una solución fue ir a la consola de comandos y crear un nuevo archivo usando "editar"
Tuve problemas similares, trabajo en una cadena de herramientas de Windows con un repositorio compartido con los chicos de Linux, ellos crean fácilmente archivos con los mismos nombres [excepto para el caso] 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 un caos.
Tengo las ventanas configuradas para que distingan entre mayúsculas y minúsculas y git para no ignorar las mayúsculas, pero sigue fallando (aparentemente en las llamadas de la API de Win32)
Si gitignore los archivos, 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
Chris