Странное поведение .gitignore для временных файлов emacs

Если я редактирую new_file.txt с помощью emacs, будут временные файлы, такие как #new_file.txt# и .#new_file.txt, когда файлы не сохранены, и new_file.txt~ при сохранении.  Я хочу исключить эти файлы. Поэтому я пишу свой .gitignore следующим образом:

#This is a comment line
*~
[#]*[#]
.\#*

И это прекрасно работает. Но позже я добавляю к нему некоторые строки комментариев:

#This is a comment line
*~
[#]*[#]     # this is a comment
.\#*     # this is another comment

После a git status я вижу, что как #new_file.txt#, так и .#new_file.txt перечислены как незатребованные файлы.

Я думаю, что .gitignore может запутаться в символе # в качестве начала строки комментария. Поэтому я удаляю эти две строки комментариев. Однако, после другого git status, я все еще вижу #new_file.txt# и .#new_file.txt, перечисленные как файлы без следа.

Я делаю:

git rm -r --cached .

как указано в ".gitignore не работает" , но это не помогает.

Может кто-нибудь рассказать мне, что случилось, и как сделать .gitignore работать, как я желаю? Большое спасибо!

Ответы

Ответ 1

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

Перенесите свои комментарии в строку перед шаблоном, и он должен вернуться к своему первоначальному поведению.