¿Cómo puedo eliminar archivos .DS_Store de un repositorio Git?
¿ Cómo puedo eliminar esos molestos .DS_Store
archivos de Mac OS X de un repositorio Git?
Eliminar archivos existentes .DS_Store
del repositorio:
find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch
Añade esta línea:
.DS_Store
al archivo .gitignore
, que se puede encontrar en el nivel superior de su repositorio (o cree el archivo si aún no está allí). Puedes hacer esto fácilmente con este comando en el directorio superior:
echo .DS_Store >> .gitignore
Luego envíe el archivo al repositorio:
git add .gitignore
git commit -m '.DS_Store banished!'
Combinando las respuestas de benzodo y webmat, actualizando con git rm
, sin fallar en los archivos encontrados que no están en el repositorio y haciendo que cualquier usuario pueda pegarlo genéricamente:
# 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
La mejor solución para abordar este problema es ignorar globalmente estos archivos de todos los repositorios de git de su sistema. Esto se puede hacer creando un archivo gitignore global 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, agrega este archivo a tu configuración global de git:
git config --global core.excludesfile ~/.gitignore_global
Editar:
Se eliminaron los íconos, ya que es posible que deban confirmarse como activos de la aplicación.