Быстрое избавление от конфликтов Dropbox


Хорошая штука Dropbox, но иногда у него сносит крышу (особенно часто такое случается после переустановки ОС), и порождаются конфликты – файлы получают с именем вида base (Solo’s conflicted copy 2012-12-29).css» (вместо Solo будет имя вашего компьютера).

Чаще всего это никак не мешает работе, файлы удаляются по мере их обнаружения. Однако, если вы используете Git и храните файлы проекта в Дропбоксе, то вдруг вместо того, чтобы молча выполнить команду, git выплюнет что-то вроде:

$ git branch
fatal: Reference has invalid format: 'refs/remotes/origin/gh-pages (Solo's conflicted copy 2012-12-29 (1))'

Поскольку git хранит всё своё добро в простых текстовых файлах внутри каталога .git, нужно пройтись по всем файлам проекта и удалить поломавшиеся файлы. Чтобы не искать все эти файлы вручную — выполним в терминале такую команду:

$ find . -name "*conflicted copy*" -ok rm "{}" ";"

Ключ -ok будет требовать подтверждения для каждого файла, если вы бесстрашный ковбой — можно его не писать.

PS. Вообще, не советую на маке ходить в каталог .git при помощи Finder — он любит оставить где не нужно файлы .DS_Store, и будет у вас непонятная фейковая ветка, если вы работаете с IDE от JetBrains.