Как я могу сказать git игнорировать файлы блокировки LibreOffice?

У меня есть репозиторий git, который содержит некоторые файлы XSLX. Я редактирую их с LibreOffice каждый раз в то время. Иногда LibreOffice не удаляет файлы блокировки (./folder/.~lock.filename.xslx#). Это заставляет эти файлы закладываться как новые на каждом git status.

Я хотел бы, чтобы git игнорировал их. Я пробовал следующее в .gitignore, но, похоже, не работает:

*.~lock*
.~lock*
*/.~lock*

Любые идеи?

UPDATE

Также попытался:

.~lock.*#

Как видно из http://lists.freedesktop.org/archives/libreoffice-commits/2012-December/040253.html без успеха.

Ответ 1

Чтобы проверить шаблоны для .gitignore,

git ls-files -ix '.~lock*'

Чтобы узнать, не была ли какая-либо кеш-ака, поставленная aka tracked aka добавленные файлы, игнорирует шаблоны (и, возможно, была добавлена ​​с ошибкой),

git ls-files -ic --exclude-standard

Как отметил @NevikRehnel, git не будет игнорировать отслеживаемые файлы. Чтобы отменить отслеживание файла,

git rm --cached path/to/it

который выведет его из следующего коммита, но единственный способ извлечь файл из более ранней истории - это переписать с помощью, например, git commit --amend, если это была только последняя фиксация, git rebase -i, если у вас есть всего несколько дел или git filter-branch для массовой работы. Ни один из них фактически не изменяет старую историю, они добавляют новую историю и переключают любую текущую ветвь, чтобы ссылаться на нее. Старая история все еще существует, и никакие другие ссылки не перемещаются.

Ответ 2

Ответ (как вы обнаружили в своих комментариях): *.~lock* внутри файла .gitignore работает просто отлично.

Кроме того, если вы используете Git для Windows, обязательно укажите свой .gitignore файл .gitignore ", NOT .gitignore.txt, который Windows пытается заставить это быть. Для этого сохраните его с помощью текстового редактора вместо того, чтобы переименовывать его в проводнике Windows.

Если у вас случайно есть расширение .txt в конце, оно НЕ будет работать, а git НЕ будет читать файл как файл .gitignore.

Ответ 3

Если вы пробовали вышеуказанные решения и не работали, пожалуйста, ознакомьтесь с этой ссылкой, это помогло мне решить эту проблему: исключая файлы блокировки LibreOffice

Я действительно закончил создание файла .gitignore, хотя первоначально мне приходилось добавлять их в файл git "exclude". Однако я думаю, что решение может работать и на это.

В основном идея состоит в том, чтобы закрыть и перезапустить libreOffice и "cd" из вашего репозитория git и снова вернуться к нему, чтобы изменения вступили в силу.

Я надеюсь, что это поможет кому-то еще с этой проблемой.