son repositorio que mac los eliminar ds_store borrar archivos archivo all macos git gitignore

macos - que - ¿Cómo puedo eliminar archivos.DS_Store de un repositorio Git?



gitignore ds_store all folders (22)

Abra el terminal y escriba "cd <ProjectPath>"

  1. Eliminar archivos existentes: find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch

  2. nano .gitignore

  3. Añade este .DS_Store

  4. escribe "ctrl + x"

  5. Escriba "y"

  6. Entrar para guardar el archivo

  7. git add .gitignore

  8. git commit -m ''.DS_Store removed.''

¿Cómo puedo eliminar esos molestos archivos Mac OS .DS_Store de un repositorio Git?


Al inicializar su repositorio, omita el comando git que contiene

-u

y no debería ser un problema.


Combinando las respuestas de benzado y webmat, actualizando con git rm , no fallando en los archivos encontrados que no están en repo, y haciéndolo pegable 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 la siguiente línea de snipplr funciona mejor al borrar todo .DS_Store, incluido uno que tiene modificaciones locales.

find . -depth -name ''.DS_Store'' -exec git-rm --cached ''{}'' /; -print

- la opción en caché, mantiene su .DS_Store local ya que se reproducirá de todos modos.

Y como se mencionó anteriormente, agregue .DS_Store al archivo .gitignore en la raíz de su proyecto. Entonces ya no estará en tu vista (de repos).


Eliminar archivos existentes del repositorio:

find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch

Agrega la linea

.DS_Store

al archivo .gitignore , que se puede encontrar en el nivel superior de su repositorio (o creado si no está ya allí). Puedes hacerlo fácilmente con este comando en el directorio superior

echo .DS_Store >> .gitignore

Entonces

git add .gitignore git commit -m ''.DS_Store banished!''


Eliminar archivos ignorados:

(.DS_Store)

$ find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch


En algunas situaciones, es posible que también desee ignorar algunos archivos globalmente. Para mí, .DS_Store es uno de ellos. Así es cómo:

git config --global core.excludesfile /Users/mat/.gitignore

(O cualquier archivo de su elección)

A continuación, edite el archivo como .gitignore de un repo. Tenga en cuenta que creo que hay que utilizar una ruta absoluta.


En caso de que quiera eliminar los archivos DS_Store de cada carpeta y subcarpeta:

En caso de que DS_Store ya esté comprometido:

find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch

Ignorarlos por:

echo ".DS_Store" >> ~/.gitignore_global echo "._.DS_Store" >> ~/.gitignore_global echo "**/.DS_Store" >> ~/.gitignore_global echo "**/._.DS_Store" >> ~/.gitignore_global git config --global core.excludesfile ~/.gitignore_global


Esto funcionará:

find . -name "*.DS_Store" -type f -exec git-rm {} /;

Borra todos los archivos cuyos nombres terminan con .DS_Store , incluido ._.DS_Store .


Esto me funcionó, combo de dos respuestas de arriba:

  • $ git rm --cached -f * .DS_Store
  • $ git commit -m "filter-branch --index-filter ''git rm --cached --ignore-unmatch .DS_Store"
  • $ git push origin master --force

Hay algunas soluciones para resolver este problema. Para evitar la creación de archivos .DS_Store, no use el OS X Finder para ver las carpetas. Una forma alternativa de ver las carpetas es usar la línea de comandos de UNIX. Para eliminar los archivos .DS_Store, se puede usar un producto de terceros llamado DS_Store Terminator. Para eliminar los archivos .DS_Store de todo el sistema, se puede usar un comando de shell de UNIX. Inicie Terminal desde Aplicaciones: Utilidades En el indicador de comandos de UNIX, ingrese el siguiente comando de UNIX: sudo find / -name ".DS_Store" -depth -exec rm {} /; Cuando se le solicite una contraseña, ingrese la contraseña del administrador de Mac OS X.

Este comando es para buscar y eliminar todas las apariciones de .DS_Store a partir de 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 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 del 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 denomina entrada crontab, que tiene el siguiente formato:

Minuto hora DayOfMonth Month DayOfWeek User Command.

La entrada crontab significa que el sistema ejecutará automáticamente el comando a las 1:15 am todos los días mediante la cuenta llamada root.

El comando comienza desde encontrar todo el camino hasta. Si el sistema no está ejecutando este comando no se ejecutará.

Para guardar la entrada, presione la tecla Esc una vez, luego presione Shift + z + z simultáneamente.

Nota: La información en el Paso 4 es solo para el editor vi.


La mejor solución para abordar este problema es ignorar globalmente estos archivos de todos los repositorios de git en su sistema. Esto se puede hacer creando un archivo gitignore global como:

vi ~/.gitignore_global

Agregando 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:

git config --global core.excludesfile ~/.gitignore_global

Editar:

Se han eliminado los iconos, ya que es posible que deban comprometerse como activos de aplicación.


La respuesta más votada es increíble, pero ayudando a los novatos como yo, aquí es cómo crear el archivo .gitignore, editarlo, guardarlo, eliminar los archivos que ya hayas agregado a git, y luego subir el archivo a Github.

Crea el archivo .gitignore

Para crear un archivo .gitignore, solo puede touch el archivo que crea un archivo en blanco con el nombre especificado. Queremos crear el archivo llamado .gitignore para poder 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 editor nano para hacer esto.

nano .gitignore

Nano es bueno porque incluye instrucciones sobre cómo salir de él. ( Ctrl - O para guardar, Ctrl - X para salir)

Copie y pegue algunas de las ideas de este github gist 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.

Este artículo de Github también tiene algunas ideas y pautas generales.

Eliminar los archivos ya añadidos a git.

Finalmente, debe eliminar esos archivos de DS Store de su directorio.

Utilice este gran comando de la respuesta más votada. Esto irá a través de todas las carpetas en su directorio y eliminará esos archivos de git.

find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch

Empuje .gitignore hasta Github

Último paso, debes confirmar tu archivo .gitignore.

git status

git add .gitignore

git commit -m ''.DS_Store banished!''


Llego un poco tarde a la fiesta, pero tengo una buena respuesta. Para eliminar los archivos .DS_Store, use los siguientes comandos de una ventana de terminal, pero tenga mucho cuidado al eliminar archivos con ''buscar''. 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 omitir "-delete" si desea simplemente listarlos 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 cometerlo, para que cualquier persona que clone su repositorio obtenga el beneficio de su uso.


Lo siguiente funcionó mejor para mí. Manejó archivos incomparables, y archivos con modificaciones locales. Para referencia, esto fue en un sistema Mac 10.7 ejecutando git 1.7.4.4.

Buscar y eliminar:

find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch -f

También ignoro globalmente .DS_Store en todos los repositorios configurando un archivo core.excludes global.

Primero, crea el archivo (si no existe uno):

touch ~/.gitignore

Luego agrega la siguiente línea y guarda:

.DS_Store

Ahora configura git para respetar el archivo globalmente:

git config --global core.excludesfile ~/.gitignore


Por alguna razón ninguno de los anteriores funcionó en mi mac.

Mi solución es desde la ejecución de terminal

rm .DS_Store

Entonces

git pull origin master


Si no puede eliminar los archivos porque tienen cambios en el uso por etapas:

git rm --cached -f *.DS_Store


Tuve que cambiar git-rm por git rm en lo anterior para que funcione:

find . -depth -name ''.DS_Store'' -exec git rm --cached ''{}'' /; -print


Utilice este comando para eliminar los archivos existentes:

find . -name ''*.DS_Store'' -type f -delete

Luego agregue .DS_Store a .gitignore


agrega esto a tu archivo .gitignore

#Ignore folder mac .DS_Store

Guarda esto y compromete

git add -A git commit -m "ignore .DS_Store"

Y ahora ignoras esto por todos tus compromisos.


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 juntos.


$ git commit -m "filter-branch --index-filter ''git rm --cached --ignore-unmatch .DS_Store" $ git push origin master --force