Ignore symbolic links in .gitignore

后端 未结 2 658
不知归路
不知归路 2021-01-02 03:41

Is it possible to tell Git to ignore symlinks ? I\'m working with a mixed Linux / Windows environment and, as you know, symlinks are handled very differently between the two

相关标签:
2条回答
  • 2021-01-02 04:02

    No, it is not possible to do this globally. However, if you have lots of symlinks here is a bash script that you can use to easily add them to your repo's .gitignore file:

    for f in $(git status --porcelain | grep '^??' | sed 's/^?? //'); do
        test -L "$f" && echo $f >> .gitignore; # add symlinks
        test -d "$f" && echo $f\* >> .gitignore; # add new directories as well
    done
    
    0 讨论(0)
  • 2021-01-02 04:10

    Use git version >= 1.6

    Git used to treat sym-links the same as regular files, but newer git versions (>= 1.6) check if a file is beyond a symbolic link and will throw a fatal error.

    e.g.:

    # git init 
    # mkdir newdir 
    # touch newdir/foo 
    # git add newdir/foo 
    # git commit -m 'add foo' 
    # mv newdir /tmp/ 
    # ln -s /tmp/newdir 
    # touch newdir/bar 
    # git add newdir/bar 
    fatal: 'newdir/bar' is beyond a symbolic link
    
    # git add/tmp/newdir
    fatal: '/tmp/newdir' is outside repository
    
    # git --version
    git version 1.7.3.4
    
    0 讨论(0)
提交回复
热议问题