¿Cómo puedo Quitar.¿DS Almacena archivos desde un repositorio Git?
¿Cómo puedo eliminar esos molestos archivos de Mac OS X .DS_Store
de un repositorio Git?
22 answers
Eliminar archivos existentes del repositorio:
find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch
Añadir la línea
.DS_Store
Al archivo .gitignore
, que se puede encontrar en el nivel superior de su repositorio (o creado si no está allí ya). 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!'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-05-09 23:59:00
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 capaz de 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
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-07-14 23:42:43
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, agrega este archivo a tu configuración global de git:
git config --global core.excludesfile ~/.gitignore_global
Editar:
Se han eliminado los iconos, ya que es posible que deban confirmarse como activos de la aplicación.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-09-16 08:58:05
En algunas situaciones es posible que también desee ignorar algunos archivos globalmente. Para mí, .DS_Store es uno de ellos. He aquí cómo:
git config --global core.excludesfile /Users/mat/.gitignore
(O cualquier archivo de su elección)
Luego edita el archivo como un repositorio .gitignore. Ten en cuenta que creo que tienes que usar una ruta absoluta.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-08-01 20:46:37
Tuve que cambiar git-rm a git rm en lo anterior para que funcionara:
find . -depth -name '.DS_Store' -exec git rm --cached '{}' \; -print
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-09-04 18:32:55
Si no puede eliminar los archivos porque tienen cambios por etapas, use:
git rm --cached -f *.DS_Store
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-08-11 21:14:25
Abra el terminal y escriba "cd "
Eliminar archivos existentes:
find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch
nano .gitignore
Añadir esto
.DS_Store
-
Escriba "ctrl + x"
-
Tipo " y "
Enter para guardar el archivo
git add .gitignore
git commit -m '.DS_Store removed.'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-24 10:03:15
Elimínelos usando git-rm
y luego agregue .DS_Store a .gitignore
para evitar que se añadan de nuevo. También puede usar blueharvest para evitar que se creen todos juntos
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2008-09-20 10:05:35
La respuesta más votada es increíble, pero ayudando a los novatos como yo, aquí está cómo crear el .gitignore, edítelo, guárdelo, elimine los archivos que ya haya agregado a git y luego empuje el archivo a Github.
Crear el .gitignore file
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 orden:
touch .gitignore
Ignorar los archivos
Ahora tienes que agregar la línea que le dice a git que ignore los archivos de DS Store a tu.gitignore. Puede utilizar el editor nano para hacer esto.
nano .gitignore
Nano es bueno porque incluye instrucciones sobre cómo salir de ella. (Ctrl-O para guardar, Ctrl-X para salir)
Copie y pegue algunas de las ideas de este Github gist que enumera algunas ideas comunes archivos a 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 directrices generales.
Eliminar los archivos ya agregados a git
Finalmente, necesita eliminar realmente esos archivos de DS Store de su directorio.
Utilice este gran comando de la respuesta votada superior. Esto pasará por todos los carpetas en tu directorio, y elimina esos archivos de git.
find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch
Empuja .gitignore hasta Github
Último paso, es necesario realmente confirmar su.archivo gitignore.
git status
git add .gitignore
git commit -m '.DS_Store banished!'
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-10-31 06:41:27
Lo siguiente funcionó mejor para mí. Manejó archivos sin igual y archivos con modificaciones locales. Como 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 estableciendo un núcleo global.excluidesfile.
Primero, crea el archivo (si no existe):
touch ~/.gitignore
Luego agregue la siguiente línea y guarde:
.DS_Store
Ahora configure git para respetar el archivo a nivel mundial:
git config --global core.excludesfile ~/.gitignore
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-09-28 00:52:59
Encontré que la siguiente línea de snipplr hace lo mejor en limpiar todo .DS_Store, incluyendo uno que tiene modificaciones locales.
find . -depth -name '.DS_Store' -exec git-rm --cached '{}' \; -print
Option cached opción, mantiene su local .DS_Store ya que va a ser reproducido de todos modos.
Y al igual que se mencionó todo lo anterior, añadir .DS_Store a .archivo gitignore en la raíz de su proyecto. Entonces ya no estará en tus ojos (de repos).
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2009-07-22 04:34:18
Utilice este comando para eliminar los archivos existentes:
find . -name '*.DS_Store' -type f -delete
Luego añadir .DS_Store
a .gitignore
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-02-18 03:05:34
Llego un poco tarde a la fiesta, pero tengo una buena respuesta. Para quitar el .Archivos DS_Store, utilice 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 fuera el "-delete" si desea simplemente enumerarlos antes y después. Eso te asegurará que se han ido.
Con respecto al~/.gitignore_global consejos: tenga cuidado aquí. Tú quieres para colocar ese bonito archivo .gitignore dentro del nivel superior de cada área de trabajo y cometerlo, para que cualquiera que clone su repositorio obtenga el beneficio de su uso.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-12-25 06:00:53
Por alguna razón, ninguno de los anteriores funcionó en mi mac.
Mi solución es desde terminal run
rm .DS_Store
Entonces
git pull origin master
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-04-10 09:06:36
Al inicializar su repositorio, omita el comando git que contiene
-u
Y no debería ser un problema.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2014-04-30 15:08:49
Esto funcionó para mí, combinación de dos respuestas desde arriba:
- git git rm c cached-f *.DS_Store
- git git commit-m "filter-branch index index-filter' git rmached cached -- ignorar-no coincidir .DS_Store "
- master git push origin master force force
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-07-28 16:16:38
Esto funcionará:
find . -name "*.DS_Store" -type f -exec git-rm {} \;
Elimina todos los archivos cuyos nombres terminan con .DS_Store
, incluyendo ._.DS_Store
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-06 17:28:48
En caso de que desee eliminar los archivos DS_Store a cada carpeta y subcarpeta:
En caso de DS_Store ya comprometido:
find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch
Ignóralos 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
$ git commit -m "filter-branch --index-filter 'git rm --cached --ignore-unmatch .DS_Store"
$ git push origin master --force
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-10-19 01:01:44
Hay algunas soluciones para resolver este problema. Para evitar crear .Archivos DS_Store, no utilice el Buscador de OS X para ver carpetas. Una forma alternativa de ver carpetas es usar la línea de comandos UNIX. Para quitar el .Archivos DS_Store se puede utilizar un producto de terceros llamado DS_Store Terminator. Para eliminar el .Archivos DS_Store de todo el sistema se puede usar un comando de shell de UNIX. Iniciar Terminal desde Aplicaciones: Utilidades En el símbolo del shell de UNIX, introduzca el siguiente comando UNIX: sudo encontrar / -nombre ".DS_Store " - profundidad-exec rm {} \; Cuando se le solicite una contraseña, introduzca la contraseña de administrador de Mac OS X.
Este comando es para buscar y eliminar todas las ocurrencias 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: Iniciar Terminal desde Aplicaciones: Utilidades En el símbolo del shell de UNIX escriba el siguiente comando de UNIX:
Sudo crontab-e Cuando se le solicite una contraseña introduzca 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:
Minute Hour dayOfMonth Month DayOfWeek Comando de usuario.
La entrada crontab significa que el comando será ejecutado por el sistema automáticamente a la 1:15 AM todos los días por la cuenta llamada arraigar.
El comando comienza desde find hasta . Si el sistema no está ejecutando este comando no se ejecutará.
Para guardar la entrada presione la tecla Esc una vez, luego presione simultáneamente Shift + z+ z.
Nota: La información en el paso 4 es solo para el editor vi.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-08-01 09:54:05
Agregue esto a su archivo .gitignore
#Ignore folder mac
.DS_Store
Guarda esto y haz commit
git add -A
git commit -m "ignore .DS_Store"
Y ahora ignoras esto para todas tus confirmaciones
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-17 17:16:39
Eliminar archivos ignorados:
(.DS_Store)
$ find . -name .DS_Store -print0 | xargs -0 git rm --ignore-unmatch
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-03-02 10:10:31