Дополнительно
Как я могу удалить файлы .DS_Store из репозитория Git?
Как я могу удалить эти надоедливые файлы Mac OS X .DS_Store
из репозитория Git?
1153
24
Удалить существующие файлы из хранилища:
Добавьте строку
в файл
.gitignore
, который можно найти на верхнем уровне вашего репозитория (или создать, если его там еще нет). Вы можете сделать это легко с помощью этой команды в верхнем каталогеЗатем
Объединение ответов benzado и webmat, обновление с помощью
git rm
, отсутствие сбоев в найденных файлах, которые не находятся в репо, и превращение их в пастеризуемый для любого пользователя:Лучшее решение для решения этой проблемы - игнорировать эти файлы на глобальном уровне из всех репозиториев git в вашей системе. Это можно сделать, создав глобальный файл gitignore, такой как:
Добавление правил игнорирования файлов, таких как:
Теперь добавьте этот файл в глобальную конфигурацию git:
Редактировать:
Удалены иконы, так как они могут потребоваться в качестве активов приложения.
В некоторых ситуациях вы также можете игнорировать некоторые файлы по всему миру. Для меня .DS_Store является одним из них. Вот как:
(Или любой файл на ваш выбор)
Затем отредактируйте файл, как у репо .gitignore. Обратите внимание, что я думаю, что вы должны использовать абсолютный путь.
Если вы не можете удалить файлы, потому что они имеют изменения поэтапного использования:
Откройте терминал и введите «cd < ProjectPath >»
Удалить существующие файлы:
найти . -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 удален.«
Мне пришлось изменить git-rm на git rm в приведенном выше, чтобы заставить его работать:
Ответ с наибольшим голосованием потрясающий, но помогая новичкам, таким как я, вот как создать файл .gitignore, отредактировать его, сохранить его, удалить файлы, которые вы, возможно, уже добавили в git, а затем перенести файл в Github.
Создать файл .gitignore
Чтобы создать файл .gitignore, вы можете просто
прикоснуться
к файлу, который создает пустой файл с указанным именем. Мы хотим создать файл с именем .gitignore, чтобы мы могли использовать команду:touch .gitignore
Игнорировать файлы
Теперь вам нужно добавить строку, которая говорит git игнорировать файлы DS Store в вашем .gitignore. Вы можете использовать нано редактор, чтобы сделать это.
nano .gitignore
Нано хорош, потому что он включает в себя инструкции о том, как выбраться из него. ( Ctrl < / kbd > - O < / kbd > сохранить, / kbd > - / kbd > выйти)
Скопируйте и вставьте некоторые идеи из этого Github gist, в котором перечислены некоторые распространенные файлы, которые следует игнорировать. Наиболее важными, чтобы ответить на этот вопрос, будут:
являются комментариями и помогут вам организовать ваш файл по мере его роста.
Эта статья Github также имеет некоторые общие идеи и рекомендации.
Удаление файлов, уже добавленных в git
Наконец, вам нужно удалить эти файлы DS Store из вашего каталога.
Используйте эту замечательную команду из верха проголосовавшего ответа. Это пройдет через все папки в вашем каталоге и удалит эти файлы из git.
найти . -name .DS_Store -print0 | xargs -0 git rm -f --ignore-unmatch
Push .gitignore до Github
На последнем шаге вам нужно фактически зафиксировать файл .gitignore.
git status
git add .gitignore
git commit -m '.DS_Store изгнан!«
удалите их, используя
git-rm
, а затем добавьте .DS_Store в.gitignore
, чтобы они снова не добавлялись. Вы также можете использовать blueharvest, чтобы остановить их создание вместеИспользуйте эту команду, чтобы удалить существующие файлы:
Затем добавьте
.DS_Store
в.gitignore
Если вы хотите удалить файлы DS_Store в каждую папку и подпапку: & Лт; hr > В случае уже совершенного DS_Store:
Игнорируйте их по:
Следующее работало лучше всего для меня. Обрабатываются непревзойденные файлы и файлы с локальными модификациями. Для справки, это было в системе Mac 10.7 с git 1.7.4.4.
Найти и удалить:
Я также глобально игнорирую .DS_Store во всех репозиториях, устанавливая глобальный core.excludesfile.
Сначала создайте файл (если он еще не существует):
Затем добавьте следующую строку и сохраните:
Теперь настройте git, чтобы уважать файл глобально:
Я обнаружил, что следующая строка из snipplr лучше всего подходит для очистки всех
.DS_Store
, включая строку, которая имеет локальные модификации.Опция
--cached
, сохраняет ваш локальный.DS_Store
, так как он все равно будет воспроизведен.И, как упоминалось выше, добавьте
.DS_Store
в файл .gitignore в корне вашего проекта. Тогда это больше не будет в вашем поле зрения (репо).Я немного опаздываю на вечеринку, но у меня есть хороший ответ. Чтобы удалить файлы .DS_Store, используйте следующие команды из окна терминала, но будьте очень осторожны при удалении файлов с помощью «find». Использование определенного имени с параметром -name является одним из более безопасных способов его использования:
Вы можете оставить «-delete», если хотите просто перечислить их до и после. Это убедит вас, что они ушли.
Что касается совета ~/.gitignore_global: будьте осторожны здесь. Вы хотите поместить этот хороший файл в .gitignore внутри верхний уровень каждой рабочей области и зафиксируйте ее, чтобы любой, кто клонирует ваше репо, получил выгоду от его использования.
Это будет работать:
Удаляет все файлы, имена которых заканчиваются на
.DS_Store
, включая._. DS_Store
.По какой-то причине ничего из вышеперечисленного не сработало на моем Mac.
Мое решение от терминала запуска:
Затем выполните следующую команду:
При инициализации вашего репозитория пропустите содержащуюся команду git
и это не должно быть проблемой.
Это сработало для меня, комбинация двух ответов сверху:
добавьте это в свой файл .gitignore
сохранить это и сделать коммит
и теперь вы игнорируете это для всех своих коммитов
Есть несколько решений для решения этой проблемы. Чтобы избежать создания файлов .DS_Store, не используйте OS X Finder для просмотра папок. Альтернативный способ просмотра папок - использовать командную строку UNIX. Для удаления файлов .DS_Store можно использовать сторонний продукт под названием DS_Store Terminator. Для удаления файлов .DS_Store из всей системы можно использовать команду оболочки UNIX. Запуск терминала из приложений: утилиты В командной строке оболочки 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 entry, который имеет следующий формат:
Минутный час DayOfMonth Month DayOfWeek Пользовательское командование.
Запись crontab означает, что команда будет выполняться системой автоматически в 1:15 каждый день учетной записью, называемой root.
Команда начинается с поиска до . Если система не работает, эта команда не будет выполнена.
Чтобы сохранить запись, нажмите клавишу Esc один раз, затем одновременно нажмите Shift + z + z.
Примечание. Информация на шаге 4 предназначена только для редактора vi.