в файл .gitignore, который можно найти на верхнем уровне вашего хранилища (или создать, если его там еще нет). Вы можете сделать это легко с помощью этой команды в верхнем каталоге
Это действительно тривиально, но использование -execзапускается git-rmодин раз для каждого файла .DS_Store, а xargsвсе пути помещаются в одну командную строку. В основном я предпочитаю, xargsпотому что мне не нужно беспокоиться о том, чтобы избежать множества специальных символов.
Бензадо
8
Для этого следует использовать .git / info / exclude, а не .gitignore. См. Stackoverflow.com/questions/1753070/… для объяснения различий между ними.
Эндрю Гримм
106
@ Андрей: я не согласен. Регистрация файла .DS_Store никогда не будет полезна, поэтому имеет больше смысла как настройка для всего хранилища, предназначенная для всех пользователей, а не как то, что каждый пользователь Mac должен помнить, чтобы установить на своем компьютере.
Бензадо
51
Есть ли добавление .DS_Storeк .gitignoreработе рекурсивно? То есть он будет игнорировать some/level/of/folders/.DS_Store?
Чарли Шлиссер
71
@CharlieS Да, если шаблон не содержит косую черту, он сопоставляется с именем файла во всех каталогах.
Бензадо
239
Комбинируя ответы benzado и webmat, обновляя их git rm, не сбивая найденные файлы, которые не находятся в репо, и делая его универсально вставляемым для любого пользователя:
# 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
Я обнаружил, что при использовании git-репо в моем домашнем каталоге (AKA-репозиторий "dotfiles") наличие ~/.gitignoreфайла глобальных исключений является проблемой . Есть файлы, которые я хочу исключить из моего домашнего каталога, которые я не хочу игнорировать глобально. Я использую ~/.gitexcludesвместо этого через ту же директиву:core.excludesfile
AL X X
156
Лучшее решение этой проблемы - глобально игнорировать эти файлы из всех репозиториев git в вашей системе. Это можно сделать, создав глобальный файл gitignore, например:
vi ~/.gitignore_global
Добавление правил для игнорирования файлов, таких как:
# 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
Теперь добавьте этот файл в вашу глобальную конфигурацию git:
Вы также можете добавить вышеуказанные правила в свой репозиторий .gitignore. Это позволит сохранить эти файлы на уровне репо, если в вашем проекте есть несколько участников. Однако в таких случаях .gitignore должен иметь дело с конкретными файлами каждой ОС и т. Д., Если разные разработчики используют разные ОС. Как и правила для Linux, OSX и т. Д.
Нерв
Я бы порекомендовал каждому разработчику иметь дело со своими ос-определенными файлами в своем собственном .global_ignore, таким образом, проект .gitignore зависит от конкретного проекта.
МакФедр
должен выполнить: git add .gitignore_global, чтобы другие программисты тоже имели этот файл в своей локальной среде?
стекав
58
В некоторых ситуациях вы также можете игнорировать некоторые файлы глобально. Для меня .DS_Store является одним из них. Вот как:
nano .gitignoreсоздает файл, если его нет, эта команда должна быть выполнена из корневой папки проекта
Saif
17
Ответ, получивший наибольшее количество голосов, потрясающий, но помогая новичкам, таким как я, вот как создать файл .gitignore, отредактировать его, сохранить его, удалить файлы, которые вы, возможно, уже добавили в git, а затем отправить файл в Github.
Создайте файл .gitignore
Чтобы создать файл .gitignore, вы можете просто touchфайл, который создает пустой файл с указанным именем. Мы хотим создать файл с именем .gitignore, чтобы мы могли использовать команду:
touch .gitignore
Игнорировать файлы
Теперь вам нужно добавить строку, которая говорит git игнорировать файлы DS Store в вашем .gitignore. Вы можете использовать нано-редактор, чтобы сделать это.
nano .gitignore
Nano хорош тем, что содержит инструкции о том, как из него выбраться. ( Ctrl- Oсохранить, Ctrl- Xвыйти)
Скопируйте и вставьте некоторые идеи из этого списка Github, в котором перечислены некоторые общие файлы, которые следует игнорировать. Наиболее важными, чтобы ответить на этот вопрос, были бы:
# OS generated files #
######################
.DS_Store
.DS_Store?
# Являются комментариями и помогут вам организовать ваш файл по мере его роста.
Эта статья на Github также имеет некоторые общие идеи и рекомендации.
Удалите файлы, уже добавленные в git
Наконец, вам нужно удалить эти файлы из DS Store из вашего каталога.
Воспользуйтесь этой замечательной командой сверху проголосовавшего ответа. Это позволит просмотреть все папки в вашем каталоге и удалить эти файлы из git.
удалите их с помощью git-rm, а затем добавьте .DS_Store, .gitignoreчтобы остановить их добавление снова. Вы также можете использовать blueharvest, чтобы они не создавались вместе.
Следующее работает лучше всего для меня. Обрабатываются несопоставленные файлы и файлы с локальными изменениями. Для справки, это было в системе Mac 10.7 под управлением git 1.7.4.4.
Я немного опоздал на вечеринку, но у меня есть хороший ответ. Чтобы удалить файлы .DS_Store, используйте следующие команды из окна терминала, но будьте очень осторожны, удаляя файлы с помощью команды «find». Использование определенного имени с параметром -name является одним из более безопасных способов его использования:
cd directory/above/affected/workareas
find . -name .DS_Store -delete
Вы можете отменить «-delete», если вы хотите просто перечислить их до и после. Это убедит вас, что они ушли.
Что касается совета ~ / .gitignore_global: будьте осторожны здесь. Вы хотите поместить этот красивый файл в .gitignore на верхнем уровне каждой рабочей области и зафиксировать его, чтобы каждый, кто клонирует ваше репо, получал выгоду от его использования.
Есть несколько решений для решения этой проблемы. Чтобы избежать создания файлов .DS_Store, не используйте OS X Finder для просмотра папок. Альтернативный способ просмотра папок - использование командной строки UNIX. Для удаления файлов .DS_Store можно использовать сторонний продукт под названием DS_Store Terminator. Чтобы удалить файлы .DS_Store из всей системы, можно использовать команду оболочки UNIX. Запустите Terminal из Applications: Utilities. В командной строке UNIX введите следующую команду UNIX: sudo find / -name ".DS_Store" -depth -exec rm {} \; При запросе пароля введите пароль администратора Mac OS X.
Эта команда предназначена для поиска и удаления всех экземпляров .DS_Store, начиная с корня (/) файловой системы через всю машину. Чтобы настроить эту команду для запуска в качестве запланированной задачи, выполните следующие действия: Запустите терминал из приложений: Утилиты. В командной строке UNIX введите следующую команду UNIX:
sudo crontab -e При появлении запроса на ввод пароля введите пароль администратора Mac OS X. Однажды в редакторе vi нажмите букву I на клавиатуре один раз и введите следующее:
Ответы:
Удалить существующие файлы из хранилища:
Добавьте строку
в файл
.gitignore
, который можно найти на верхнем уровне вашего хранилища (или создать, если его там еще нет). Вы можете сделать это легко с помощью этой команды в верхнем каталогезатем
источник
-exec
запускаетсяgit-rm
один раз для каждого файла .DS_Store, аxargs
все пути помещаются в одну командную строку. В основном я предпочитаю,xargs
потому что мне не нужно беспокоиться о том, чтобы избежать множества специальных символов..DS_Store
к.gitignore
работе рекурсивно? То есть он будет игнорироватьsome/level/of/folders/.DS_Store
?Комбинируя ответы benzado и webmat, обновляя их
git rm
, не сбивая найденные файлы, которые не находятся в репо, и делая его универсально вставляемым для любого пользователя:источник
~/.gitignore
файла глобальных исключений является проблемой . Есть файлы, которые я хочу исключить из моего домашнего каталога, которые я не хочу игнорировать глобально. Я использую~/.gitexcludes
вместо этого через ту же директиву:core.excludesfile
Лучшее решение этой проблемы - глобально игнорировать эти файлы из всех репозиториев git в вашей системе. Это можно сделать, создав глобальный файл gitignore, например:
Добавление правил для игнорирования файлов, таких как:
Теперь добавьте этот файл в вашу глобальную конфигурацию git:
Редактировать:
Удалены значки, так как они могут потребоваться в качестве активов приложения.
источник
В некоторых ситуациях вы также можете игнорировать некоторые файлы глобально. Для меня .DS_Store является одним из них. Вот как:
(Или любой файл на ваш выбор)
Затем отредактируйте файл так же, как в репозитории .gitignore. Обратите внимание, что я думаю, что вы должны использовать абсолютный путь.
источник
Если вы не можете удалить файлы из-за их поэтапного использования:
источник
Откройте терминал и введите «cd <ProjectPath>»
Удалить существующие файлы:
find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch
nano .gitignore
Добавь это
.DS_Store
введите "Ctrl + X"
Тип "у"
Войдите, чтобы сохранить файл
git add .gitignore
git commit -m '.DS_Store removed.'
источник
nano .gitignore
создает файл, если его нет, эта команда должна быть выполнена из корневой папки проектаОтвет, получивший наибольшее количество голосов, потрясающий, но помогая новичкам, таким как я, вот как создать файл .gitignore, отредактировать его, сохранить его, удалить файлы, которые вы, возможно, уже добавили в git, а затем отправить файл в Github.
Создайте файл .gitignore
Чтобы создать файл .gitignore, вы можете просто
touch
файл, который создает пустой файл с указанным именем. Мы хотим создать файл с именем .gitignore, чтобы мы могли использовать команду:touch .gitignore
Игнорировать файлы
Теперь вам нужно добавить строку, которая говорит git игнорировать файлы DS Store в вашем .gitignore. Вы можете использовать нано-редактор, чтобы сделать это.
nano .gitignore
Nano хорош тем, что содержит инструкции о том, как из него выбраться. ( Ctrl- Oсохранить, Ctrl- Xвыйти)
Скопируйте и вставьте некоторые идеи из этого списка Github, в котором перечислены некоторые общие файлы, которые следует игнорировать. Наиболее важными, чтобы ответить на этот вопрос, были бы:
# Являются комментариями и помогут вам организовать ваш файл по мере его роста.
Эта статья на Github также имеет некоторые общие идеи и рекомендации.
Удалите файлы, уже добавленные в git
Наконец, вам нужно удалить эти файлы из DS Store из вашего каталога.
Воспользуйтесь этой замечательной командой сверху проголосовавшего ответа. Это позволит просмотреть все папки в вашем каталоге и удалить эти файлы из git.
find . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch
Нажмите .gitignore до Github
Последний шаг, вам нужно зафиксировать ваш файл .gitignore.
git status
git add .gitignore
git commit -m '.DS_Store banished!'
источник
Мне пришлось изменить git-rm на git-rm в приведенном выше, чтобы заставить его работать:
источник
удалите их с помощью
git-rm
, а затем добавьте .DS_Store,.gitignore
чтобы остановить их добавление снова. Вы также можете использовать blueharvest, чтобы они не создавались вместе.источник
Если вы хотите удалить файлы DS_Store в каждую папку и подпапку:
В случае уже совершенного DS_Store:
Проигнорируйте их:
источник
Следующее работает лучше всего для меня. Обрабатываются несопоставленные файлы и файлы с локальными изменениями. Для справки, это было в системе Mac 10.7 под управлением git 1.7.4.4.
Найти и удалить:
Я также глобально игнорирую .DS_Store во всех репозиториях, устанавливая глобальный core.excludesfile.
Сначала создайте файл (если он еще не существует):
Затем добавьте следующую строку и сохраните:
Теперь сконфигурируйте git так, чтобы уважать файл глобально:
источник
Используйте эту команду для удаления существующих файлов:
Затем добавьте
.DS_Store
к.gitignore
источник
Я обнаружил, что следующая строка из snipplr лучше всего удаляет все
.DS_Store
, включая строку с локальными изменениями.--cached
вариант, сохраняет ваш локальный,.DS_Store
так как он все равно будет воспроизводиться.И, как уже упоминалось выше, добавьте
.DS_Store
в файл .gitignore в корне вашего проекта. Тогда это больше не будет в ваших глазах (репо).источник
Я немного опоздал на вечеринку, но у меня есть хороший ответ. Чтобы удалить файлы .DS_Store, используйте следующие команды из окна терминала, но будьте очень осторожны, удаляя файлы с помощью команды «find». Использование определенного имени с параметром -name является одним из более безопасных способов его использования:
Вы можете отменить «-delete», если вы хотите просто перечислить их до и после. Это убедит вас, что они ушли.
Что касается совета ~ / .gitignore_global: будьте осторожны здесь. Вы хотите поместить этот красивый файл в .gitignore на верхнем уровне каждой рабочей области и зафиксировать его, чтобы каждый, кто клонирует ваше репо, получал выгоду от его использования.
источник
Это будет работать:
Удаляет все файлы, имена которых заканчиваются
.DS_Store
, в том числе._.DS_Store
.источник
"*.DS_Store"
, чтобы звездочка передавалась,find
а не расширялась оболочкой.По какой-то причине ничего из вышеперечисленного не работает на моем Mac.
Мое решение от терминала запустить:
Затем выполните следующую команду:
источник
источник
При инициализации вашего хранилища пропустите команду git, которая содержит
и это не должно быть проблемой.
источник
Это сработало для меня, комбинируя два ответа сверху:
источник
Удалить игнорируемые файлы:
(.DS_Store)
источник
Лучший способ избавиться от этого файла навсегда и больше никогда не беспокоиться об этом
создайте глобальный файл .gitignore:
echo .DS_Store >> ~ / .gitignore_global
И дайте git знать, что вы хотите использовать этот файл для всех ваших репозиториев:
git config --global core.excludesfile ~ / .gitignore_global И это все! .DS_Store вне вашего пути.
источник
Есть несколько решений для решения этой проблемы. Чтобы избежать создания файлов .DS_Store, не используйте OS X Finder для просмотра папок. Альтернативный способ просмотра папок - использование командной строки UNIX. Для удаления файлов .DS_Store можно использовать сторонний продукт под названием DS_Store Terminator. Чтобы удалить файлы .DS_Store из всей системы, можно использовать команду оболочки UNIX. Запустите Terminal из Applications: Utilities. В командной строке UNIX введите следующую команду UNIX: sudo find / -name ".DS_Store" -depth -exec rm {} \; При запросе пароля введите пароль администратора Mac OS X.
Эта команда предназначена для поиска и удаления всех экземпляров .DS_Store, начиная с корня (/) файловой системы через всю машину. Чтобы настроить эту команду для запуска в качестве запланированной задачи, выполните следующие действия: Запустите терминал из приложений: Утилиты. В командной строке UNIX введите следующую команду UNIX:
sudo crontab -e При появлении запроса на ввод пароля введите пароль администратора Mac OS X. Однажды в редакторе vi нажмите букву I на клавиатуре один раз и введите следующее:
15 1 * * * root find / -name ".DS_Store" -depth -exec rm {} \;
Это называется записью crontab, которая имеет следующий формат:
Минутный час DayOfMonth Month DayOfWeek Пользовательская команда.
Запись crontab означает, что команда будет автоматически выполняться системой в 1:15 каждый день под учетной записью root.
Команда начинается с поиска до. Если система не работает, эта команда не будет выполнена.
Чтобы сохранить запись, нажмите клавишу Esc один раз, затем одновременно нажмите Shift + z + z.
Примечание. Информация на шаге 4 предназначена только для редактора vi.
источник
добавьте это в ваш файл .gitignore
сохранить это и сделать коммит
и теперь вы игнорируете это для всех ваших коммитов
источник
создать
.gitignore
файл с помощью командыtouch .gitignore
и добавьте в него следующие строки
сохраните
.gitignore
файл, а затем вставьте его в git-репозиторий.источник
Нет необходимости удалять
.DS_STORE
локальноПросто добавьте его в
.gitignore
файлкоманды
nano .gitignore
.DS_Store
Затем нажмитеCTRL+X > y > Hit Return
git status
Чтобы в последний раз взглянуть на ваши измененияgit add .gitignore
git commit -m 'YOUR COMMIT MESSAGE'
git push origin master
источник