al archivo .gitignore, que se puede encontrar en el nivel superior de su repositorio (o creado si aún no está allí). Puede hacerlo fácilmente con este comando en el directorio superior
Es realmente trivial, pero el uso -execse iniciará git-rmuna vez para cada archivo .DS_Store, mientras xargsque colocará todas las rutas en una línea de comando. Principalmente prefiero xargsporque no tengo que preocuparme por escapar de muchos personajes especiales.
benzado
8
Esto debería usar .git / info / exclude, no .gitignore. Consulte stackoverflow.com/questions/1753070/… para obtener una explicación de la diferencia entre los dos.
Andrew Grimm
106
@ Andrew: No estoy de acuerdo. Nunca sería útil que un archivo .DS_Store se registre, por lo que tiene más sentido como una configuración de todo el repositorio para todos los usuarios, en lugar de algo que cada usuario de Mac necesita recordar para configurar en su propia máquina.
benzado
51
¿Agregar .DS_Storeal .gitignoretrabajo de forma recursiva? Es decir, ¿lo ignorará some/level/of/folders/.DS_Storetambién?
Charlie Schliesser
71
@CharlieS Sí, si el patrón no contiene una barra oblicua, se compara con el nombre del archivo en todos los directorios.
benzado
239
Combinando las respuestas de benzado y webmat, actualizando git rm, sin fallar en los archivos encontrados que no están en el repositorio, y haciéndolo pegar genéricamente para cualquier usuario:
# remove any existing files from the repo, skipping over ones not in repo
find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch
# specify a global exclusion list
git config --global core.excludesfile ~/.gitignore
# adding .DS_Store to that list
echo .DS_Store >> ~/.gitignore
Descubrí que cuando uso un repositorio git en mi directorio de inicio (también conocido como un repositorio de "archivos de puntos"), tener ~/.gitignorecomo mi archivo de exclusión global es un fastidio. Hay archivos que quiero excluir de mi directorio de inicio que no quiero ignorar a nivel mundial. En su ~/.gitexcludeslugar, uso la misma directiva:core.excludesfile
AL the X
156
La mejor solución para abordar este problema es ignorar globalmente estos archivos de todos los repositorios git en su sistema. Esto se puede hacer creando un archivo global de gitignore como:
vi ~/.gitignore_global
Agregar reglas para ignorar archivos como:
# Compiled source #
###################
*.com
*.class
*.dll
*.exe
*.o
*.so
# Packages #
############
# it's better to unpack these files and commit the raw source
# git has its own built in compression methods
*.7z
*.dmg
*.gz
*.iso
*.jar
*.rar
*.tar
*.zip
# Logs and databases #
######################
*.log
*.sql
*.sqlite
# OS generated files #
######################
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db
Ahora, agregue este archivo a su configuración global de git:
También puede agregar las reglas anteriores en el .gitignore de su repositorio. Esto mantendría alejados estos archivos a nivel de repositorio si hay múltiples contribuyentes a su proyecto. Sin embargo, en tales casos, .gitignore debería tratar con los archivos específicos de cada sistema operativo, etc., si diferentes desarrolladores están utilizando un sistema operativo diferente. Como reglas para Linux, OSX, etc.
Nerve
Recomendaría que cada desarrollador maneje sus archivos específicos del sistema operativo en su propio .global_ignore, de esa manera el proyecto .gitignore es específico del proyecto.
mcfedr
debe ejecutar: git add .gitignore_global, para que otros programadores también tengan ese archivo en su entorno local.
stackdave
58
En algunas situaciones, es posible que también desee ignorar algunos archivos a nivel mundial. Para mí, .DS_Store es uno de ellos. Así es cómo:
nano .gitignorecrea el archivo si no está presente, este comando debe ejecutarse desde la carpeta raíz del proyecto
Saif
17
La respuesta más votada es increíble, pero ayudando a los novatos como yo, aquí se explica cómo crear el archivo .gitignore, editarlo, guardarlo, eliminar los archivos que quizás ya haya agregado a git y luego subir el archivo a Github.
Crea el archivo .gitignore
Para crear un archivo .gitignore, solo puede crear touchel archivo que crea un archivo en blanco con el nombre especificado. Queremos crear el archivo llamado .gitignore para que podamos usar el comando:
touch .gitignore
Ignorar los archivos
Ahora tiene que agregar la línea que le dice a git que ignore los archivos de DS Store en su .gitignore. Puedes usar el nano editor para hacer esto.
nano .gitignore
Nano es bueno porque incluye instrucciones sobre cómo salir de él. ( Ctrl- Opara guardar, Ctrl- Xpara salir)
Copie y pegue algunas de las ideas de este resumen de Github que enumera algunos archivos comunes para ignorar. Los más importantes, para responder a esta pregunta, serían:
# OS generated files #
######################
.DS_Store
.DS_Store?
Los # son comentarios y le ayudarán a organizar su archivo a medida que crece.
elimínelos usando git-rm, y luego agregue .DS_Store a .gitignorepara evitar que se agreguen nuevamente. También puedes usar blueharvest para evitar que se creen todos juntos
Lo siguiente funcionó mejor para mí. Se manejaron archivos inigualables y archivos con modificaciones locales. Como referencia, esto fue en un sistema Mac 10.7 con git 1.7.4.4.
--cachedopción, mantiene su local .DS_Storeya que de todos modos se reproducirá.
Y tal como se mencionó anteriormente, agregue .DS_Storeal archivo .gitignore en la raíz de su proyecto. Entonces ya no estará a la vista (de repositorios).
Llego un poco tarde a la fiesta, pero tengo una buena respuesta. Para eliminar los archivos .DS_Store, use los siguientes comandos desde una ventana de terminal, pero tenga mucho cuidado al eliminar archivos con 'find'. Usar un nombre específico con la opción -name es una de las formas más seguras de usarlo:
cd directory/above/affected/workareas
find . -name .DS_Store -delete
Puede dejar el "-delete" si desea simplemente enumerarlos antes y después. Eso te asegurará que se han ido.
Con respecto al consejo ~ / .gitignore_global: tenga cuidado aquí. Desea colocar ese archivo agradable en .gitignore dentro del nivel superior de cada área de trabajo y confirmarlo, para que cualquiera que clone su repositorio obtenga el beneficio de su uso.
Hay algunas soluciones para resolver este problema. Para evitar crear archivos .DS_Store, no use OS X Finder para ver carpetas. Una forma alternativa de ver carpetas es usar la línea de comandos de UNIX. Para eliminar los archivos .DS_Store, se puede utilizar un producto de terceros llamado DS_Store Terminator. Para eliminar los archivos .DS_Store de todo el sistema, se puede utilizar un comando de shell UNIX. Iniciar Terminal desde Aplicaciones: Utilidades En el indicador de shell de UNIX, ingrese el siguiente comando UNIX: sudo find / -name ".DS_Store" -depth -exec rm {} \; Cuando se le solicite una contraseña, ingrese la contraseña de administrador de Mac OS X.
Este comando es buscar y eliminar todas las apariciones de .DS_Store comenzando desde la raíz (/) del sistema de archivos a través de toda la máquina. Para configurar este comando para que se ejecute como una tarea programada, siga los pasos a continuación: Inicie la Terminal desde Aplicaciones: Utilidades En el indicador de shell de UNIX ingrese el siguiente comando de UNIX:
sudo crontab -e Cuando se le solicite una contraseña, ingrese la contraseña de administrador de Mac OS X. Una vez en el editor vi, presione la letra I en su teclado una vez e ingrese lo siguiente:
Respuestas:
Eliminar archivos existentes del repositorio:
Agrega la línea
al archivo
.gitignore
, que se puede encontrar en el nivel superior de su repositorio (o creado si aún no está allí). Puede hacerlo fácilmente con este comando en el directorio superiorEntonces
fuente
-exec
se iniciarágit-rm
una vez para cada archivo .DS_Store, mientrasxargs
que colocará todas las rutas en una línea de comando. Principalmente prefieroxargs
porque no tengo que preocuparme por escapar de muchos personajes especiales..DS_Store
al.gitignore
trabajo de forma recursiva? Es decir, ¿lo ignorarásome/level/of/folders/.DS_Store
también?Combinando las respuestas de benzado y webmat, actualizando
git rm
, sin fallar en los archivos encontrados que no están en el repositorio, y haciéndolo pegar genéricamente para cualquier usuario:fuente
~/.gitignore
como mi archivo de exclusión global es un fastidio. Hay archivos que quiero excluir de mi directorio de inicio que no quiero ignorar a nivel mundial. En su~/.gitexcludes
lugar, uso la misma directiva:core.excludesfile
La mejor solución para abordar este problema es ignorar globalmente estos archivos de todos los repositorios git en su sistema. Esto se puede hacer creando un archivo global de gitignore como:
Agregar reglas para ignorar archivos como:
Ahora, agregue este archivo a su configuración global de git:
Editar:
Se eliminaron los iconos, ya que podrían necesitar ser confirmados como activos de aplicación.
fuente
En algunas situaciones, es posible que también desee ignorar algunos archivos a nivel mundial. Para mí, .DS_Store es uno de ellos. Así es cómo:
(O cualquier archivo de su elección)
Luego edite el archivo como un repositorio .gitignore. Tenga en cuenta que creo que debe usar una ruta absoluta.
fuente
Si no puede eliminar los archivos porque tienen cambios de uso por etapas:
fuente
Abra la terminal y escriba "cd <ProjectPath>"
Eliminar archivos existentes:
find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch
nano .gitignore
Agrega esto
.DS_Store
escriba "ctrl + x"
Escriba "y"
Ingrese para guardar el archivo
git add .gitignore
git commit -m '.DS_Store removed.'
fuente
nano .gitignore
crea el archivo si no está presente, este comando debe ejecutarse desde la carpeta raíz del proyectoLa respuesta más votada es increíble, pero ayudando a los novatos como yo, aquí se explica cómo crear el archivo .gitignore, editarlo, guardarlo, eliminar los archivos que quizás ya haya agregado a git y luego subir el archivo a Github.
Crea el archivo .gitignore
Para crear un archivo .gitignore, solo puede crear
touch
el archivo que crea un archivo en blanco con el nombre especificado. Queremos crear el archivo llamado .gitignore para que podamos usar el comando:touch .gitignore
Ignorar los archivos
Ahora tiene que agregar la línea que le dice a git que ignore los archivos de DS Store en su .gitignore. Puedes usar el nano editor para hacer esto.
nano .gitignore
Nano es bueno porque incluye instrucciones sobre cómo salir de él. ( Ctrl- Opara guardar, Ctrl- Xpara salir)
Copie y pegue algunas de las ideas de este resumen de Github que enumera algunos archivos comunes para ignorar. Los más importantes, para responder a esta pregunta, serían:
Los # son comentarios y le ayudarán a organizar su archivo a medida que crece.
Este artículo de Github también tiene algunas ideas y pautas generales.
Eliminar los archivos ya agregados a git
Finalmente, debe eliminar esos archivos de DS Store de su directorio.
Utilice este gran comando de la respuesta más votada. Esto recorrerá todas las carpetas en su directorio y eliminará esos archivos de git.
find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch
Empuja .gitignore hasta Github
Último paso, debe confirmar su archivo .gitignore.
git status
git add .gitignore
git commit -m '.DS_Store banished!'
fuente
Tuve que cambiar git-rm a git rm en lo anterior para que funcione:
fuente
elimínelos usando
git-rm
, y luego agregue .DS_Store a.gitignore
para evitar que se agreguen nuevamente. También puedes usar blueharvest para evitar que se creen todos juntosfuente
En caso de que desee eliminar archivos DS_Store en cada carpeta y subcarpeta:
En caso de DS_Store ya comprometido:
Ignóralos por:
fuente
Lo siguiente funcionó mejor para mí. Se manejaron archivos inigualables y archivos con modificaciones locales. Como referencia, esto fue en un sistema Mac 10.7 con git 1.7.4.4.
Encuentra y elimina:
También ignoro globalmente .DS_Store en todos los repositorios estableciendo un archivo core.excludes global.
Primero, cree el archivo (si aún no existe):
Luego agregue la siguiente línea y guarde:
Ahora configure git para respetar el archivo globalmente:
fuente
Use este comando para eliminar los archivos existentes:
Luego agregue
.DS_Store
a.gitignore
fuente
Descubrí que la siguiente línea de snipplr funciona mejor para borrar todo
.DS_Store
, incluido uno que tiene modificaciones locales.--cached
opción, mantiene su local.DS_Store
ya que de todos modos se reproducirá.Y tal como se mencionó anteriormente, agregue
.DS_Store
al archivo .gitignore en la raíz de su proyecto. Entonces ya no estará a la vista (de repositorios).fuente
Llego un poco tarde a la fiesta, pero tengo una buena respuesta. Para eliminar los archivos .DS_Store, use los siguientes comandos desde una ventana de terminal, pero tenga mucho cuidado al eliminar archivos con 'find'. Usar un nombre específico con la opción -name es una de las formas más seguras de usarlo:
Puede dejar el "-delete" si desea simplemente enumerarlos antes y después. Eso te asegurará que se han ido.
Con respecto al consejo ~ / .gitignore_global: tenga cuidado aquí. Desea colocar ese archivo agradable en .gitignore dentro del nivel superior de cada área de trabajo y confirmarlo, para que cualquiera que clone su repositorio obtenga el beneficio de su uso.
fuente
Esto funcionará:
Elimina todos los archivos cuyos nombres terminan con
.DS_Store
, incluido._.DS_Store
.fuente
"*.DS_Store"
, para quefind
el shell pase el asterisco en lugar de expandirlo.Por alguna razón, ninguno de los anteriores funcionó en mi mac.
Mi solución es de la ejecución del terminal:
Luego ejecute el siguiente comando:
fuente
fuente
Al inicializar su repositorio, omita el comando git que contiene
Y no debería ser un problema.
fuente
Esto funcionó para mí, combinado de dos respuestas de arriba:
fuente
Eliminar archivos ignorados:
(.DS_Store)
fuente
Hay algunas soluciones para resolver este problema. Para evitar crear archivos .DS_Store, no use OS X Finder para ver carpetas. Una forma alternativa de ver carpetas es usar la línea de comandos de UNIX. Para eliminar los archivos .DS_Store, se puede utilizar un producto de terceros llamado DS_Store Terminator. Para eliminar los archivos .DS_Store de todo el sistema, se puede utilizar un comando de shell UNIX. Iniciar Terminal desde Aplicaciones: Utilidades En el indicador de shell de UNIX, ingrese el siguiente comando UNIX: sudo find / -name ".DS_Store" -depth -exec rm {} \; Cuando se le solicite una contraseña, ingrese la contraseña de administrador de Mac OS X.
Este comando es buscar y eliminar todas las apariciones de .DS_Store comenzando desde la raíz (/) del sistema de archivos a través de toda la máquina. Para configurar este comando para que se ejecute como una tarea programada, siga los pasos a continuación: Inicie la Terminal desde Aplicaciones: Utilidades En el indicador de shell de UNIX ingrese el siguiente comando de UNIX:
sudo crontab -e Cuando se le solicite una contraseña, ingrese la contraseña de administrador de Mac OS X. Una vez en el editor vi, presione la letra I en su teclado una vez e ingrese lo siguiente:
15 1 * * * root find / -name ".DS_Store" -depth -exec rm {} \;
Esto se llama entrada crontab, que tiene el siguiente formato:
Minuto Hora DayOfMonth Month DayOfWeek Usuario Comando.
La entrada crontab significa que el sistema ejecutará el comando automáticamente a la 1:15 AM todos los días por la cuenta llamada root.
El comando comienza desde encontrar todo el camino hasta. Si el sistema no se está ejecutando, este comando no se ejecutará.
Para guardar la entrada, presione la tecla Esc una vez, luego presione simultáneamente Mayús + z + z.
Nota: La información en el Paso 4 es solo para el editor vi.
fuente
agregue esto a su archivo .gitignore
guarda esto y haz commit
y ahora ignoras esto para todos tus commits
fuente
crear un
.gitignore
archivo usando el comandotouch .gitignore
y agregue las siguientes líneas en él
guarde el
.gitignore
archivo y luego empújelo a su repositorio de git.fuente
La mejor manera de deshacerse de este archivo para siempre y no tener que preocuparse nunca más es
hacer un archivo global .gitignore:
echo .DS_Store >> ~ / .gitignore_global
Y dígale a git que desea usar este archivo para todos sus repositorios:
git config --global core.excludesfile ~ / .gitignore_global ¡Y eso es todo! .DS_Store está fuera de tu camino.
fuente
No es necesario eliminar
.DS_STORE
localmenteSolo agrégalo al
.gitignore
archivoComandos
nano .gitignore
.DS_Store
Luego haz clicCTRL+X > y > Hit Return
git status
Para echar un último vistazo a tus cambiosgit add .gitignore
git commit -m 'YOUR COMMIT MESSAGE'
git push origin master
fuente