.gitignore regex для временных файлов emacs

Я пытаюсь использовать .gitignore временные/автосохраненные файлы emacs. Я использую...

\.\#.*

в моем .gitignore.

Но git add -A запустить во вложенной папке все еще дает мне:

#       new file:   .#make_collections.py
#       new file:   .#norm_collections.py
#       new file:   make_collections.py
#       new file:   norm_collections.py

хотя

\.\#.*

явно получает правильные имена файлов, а не неправильные, когда я проверю его с помощью тестера регулярных выражений.

Ответы

Ответ 1

Вы также можете указать emacs сохранить файлы автосохранения в другом каталоге, установив переменную auto-save-file-name-transforms, у меня есть это в моем файле инициализации

(setq auto-save-file-name-transforms
          `((".*" ,(concat user-emacs-directory "auto-save/") t))) 

Это указывает emacs сохранять автосохранения внутри папки auto-save в каталоге user-emacs (обычно ~/.emacs.d).

Чтобы сохранить резервные файлы в другом каталоге, установите переменную backup-directory-alist, следующее будет сохранять файлы резервной копии внутри папки backups в каталоге user-emacs

(setq backup-directory-alist
      `(("." . ,(expand-file-name
                 (concat user-emacs-directory "backups")))))

Ответ 2

gitignore не использует регулярные выражения. Вместо этого он использует shell glob patters. На странице вам сообщается две важные для этой ситуации вещи:

Otherwise, Git treats the pattern as a shell glob suitable for
consumption by fnmatch(3) with the FNM_PATHNAME flag.

и

A line starting with # serves as a comment. Put a backslash ("\")
in front of the first hash for patterns that begin with a hash.

Это означает, что шаблон, который вы хотите использовать, просто .#*.

Теперь второй шаблон, упомянутый matov, #*, ничего не делает, поскольку он рассматривается как комментарий git. Поэтому я цитирую это второе предложение на странице руководства.

Ответ 3

Автосохранные файлы Emacs игнорируются с помощью

\#*#

Ответ 4

файлы игнорируются с помощью:

\#*\# .\#*

Ответ 5

Если вам нужен простой способ игнорировать файлы, вы также можете использовать http://www.gitignore.io, который помогает создавать полезные .gitignore файлы для вашего проекта.

Вот шаблон emacs: https://www.gitignore.io/api/emacs

Существует также документация, демонстрирующая, как запустить gi из командной строки.