Как я могу сказать 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 и снова вернуться к нему, чтобы изменения вступили в силу.
Я надеюсь, что это поможет кому-то еще с этой проблемой.