.gitignore regex for emacs temporary files

前端 未结 6 1530
没有蜡笔的小新
没有蜡笔的小新 2021-02-05 06:11

I\'m trying to .gitignore emacs temporary/autosave files. I\'m using...

\\.\\#.*

in my .gitignore.

But git add -A run in

相关标签:
6条回答
  • 2021-02-05 06:33

    To suppress the temporary Emacs files appearing on git status globally, you can do the following:

    1. Configure git to use a global excludesfile

      Since this is a common problem, git has a specific solution to that:

      Patterns which a user wants Git to ignore in all situations (e.g., backup or temporary files generated by the user’s editor of choice) generally go into a file specified by core.excludesFile in the user’s ~/.gitconfig

      git config --global core.excludesfile ~/.gitignore_global    
      
    2. Create the respective file

       cd
       touch .gitignore_global
      
    3. Paste the following template into the file

      # -*- mode: gitignore; -*-
      *~
      \#*\#
      /.emacs.desktop
      /.emacs.desktop.lock
      *.elc
      auto-save-list
      tramp
      .\#*
      
      # Org-mode
      .org-id-locations
      *_archive
      
      # flymake-mode
      *_flymake.*
      
      # eshell files
      /eshell/history
      /eshell/lastdir
      
      # elpa packages
      /elpa/
      
      # reftex files
      .rel
      
      # AUCTeX auto folder
      /auto/
      
      # cask packages
      .cask/
      dist/
      
      # Flycheck
      flycheck_*.el
      
      # server auth directory
      /server/
      
      # projectiles files
      .projectile
      
      # directory configuration
      .dir-locals.el
      
      # network security
      /network-security.data
      
    4. Watch git do its magic! :)

    0 讨论(0)
  • 2021-02-05 06:37

    If you want an easy way to ignore files, you can also use http://www.gitignore.io which helps create useful .gitignore files for your project.

    Here is the emacs template: https://www.gitignore.io/api/emacs

    There is also documentation demonstrating how to run gi from the command line.

    0 讨论(0)
  • 2021-02-05 06:39

    Emacs autosave files are ignored with

    \#*#
    
    0 讨论(0)
  • 2021-02-05 06:46

    You can also instruct emacs to save the autosave files in a different directory altogether by setting the variable auto-save-file-name-transforms, I have this in my init file

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

    This instructs emacs to store the auto-saves inside the auto-save folder in the user-emacs-directory (usually ~/.emacs.d).

    To save backup files in a different directory set the variable backup-directory-alist, the following will save backup files inside backups folder in the user-emacs-directory

    (setq backup-directory-alist
          `(("." . ,(expand-file-name
                     (concat user-emacs-directory "backups")))))
    
    0 讨论(0)
  • 2021-02-05 06:48

    files are ignored with:

    \#*\# .\#*

    0 讨论(0)
  • 2021-02-05 06:52

    gitignore doesn't use regular expressions. Instead it uses shell glob patters. The man page tells you two things important for this situation:

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

    and

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

    This means that the pattern you want to use is simply .#*.

    Now the second pattern that matov mentioned, #*, doesn't do anything as it is treated as a comment by git. Hence me quoting that second sentence from the man page.

    0 讨论(0)
提交回复
热议问题