Pregunta ¿Cómo puedo eliminar archivos .DS_Store de un repositorio de Git?


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


939
2017-09-20 09:15


origen


Respuestas:


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 ya no está allí). Puede hacer esto fácilmente con este comando en el directorio superior

echo .DS_Store >> .gitignore

Entonces

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

1815
2017-09-20 11:18



Combinando las respuestas de benzado y webmat, actualizando con git rm, no falla en los archivos encontrados que no están en repositorio, y hace que se pueda 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

211
2017-07-14 23:42



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:

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

Editar:

Se eliminaron los íconos, ya que es posible que deban comprometerse como activos de la aplicación.


118
2017-07-13 08:03



En algunas situaciones, es posible que también desee ignorar algunos archivos de forma global. 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)

Luego edite el archivo como un .gitignore de un repositorio. Tenga en cuenta que creo que debe usar una ruta absoluta.


51
2017-09-20 13:08



Tuve que cambiar de git-rm a git rm en el anterior para que funcione:

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

13
2017-07-20 14:05



Si no puede eliminar los archivos porque tienen cambios por etapas, use:

git rm --cached -f *.DS_Store

11
2018-05-12 00:21



Abra el terminal y escriba "cd <ProjectPath>"

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

  2. nano .gitignore

  3. Agrega esto .DS_Store

  4. escribe "ctrl + x"

  5. Escribe "y"

  6. Ingresa para guardar el archivo

  7. git add .gitignore

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


10
2017-11-24 09:30



eliminarlos usando git-rm, y luego agregue .DS_Store a .gitignore para evitar que se agreguen de nuevo. También puedes usar cosecha azul para evitar que se creen todos juntos


8
2017-09-20 09:20



La mejor respuesta es excelente, pero ayudando a los novatos como yo, aquí se explica 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, puede simplemente 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

Ignora los archivos

Ahora tiene que agregar la línea que le dice a git que ignore los archivos de DS Store en su .gitignore. Puede usar el editor nano para hacer esto.

nano .gitignore

Nano es bueno porque incluye instrucciones sobre cómo salir de él. (Ctrl-O ahorrar, Ctrl-X 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 esta pregunta, serían:

# OS generated files #
######################
.DS_Store
.DS_Store?

Los # son comentarios y te ayudarán a organizar tu archivo a medida que vaya creciendo.

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

Use este gran comando de la respuesta más votado. Esto pasará por todas las carpetas de su directorio y eliminará esos archivos de git.

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

Empujar .gitignore hasta Github

El último paso, necesitas comprometer tu archivo .gitignore.

git status

git add .gitignore

git commit -m '.DS_Store banished!'


6
2017-10-31 06:41



Lo siguiente funcionó mejor para mí. Manejo de archivos sin igual y archivos con modificaciones locales. Como referencia, esto fue en un sistema Mac 10.7 ejecutando git 1.7.4.4.

Encuentra y elimina:

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

También ignoro globalmente .DS_Store en todos los repositorios estableciendo un core.excludesfile global.

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

touch ~/.gitignore

A continuación, agregue la siguiente línea y guárdelo:

.DS_Store

Ahora configure git para respetar el archivo globalmente:

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

5
2017-09-28 00:52



Encontré 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

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

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


4
2017-07-21 19:17