Игнорировать символические ссылки в .gitignore - PullRequest
10 голосов
/ 18 августа 2010

Можно ли сказать Git игнорировать символические ссылки?Я работаю в смешанной среде Linux / Windows, и, как вы знаете, символические ссылки обрабатываются очень по-разному.

Ответы [ 2 ]

1 голос
/ 28 октября 2014

Нет, это невозможно сделать глобально.Однако, если у вас много символических ссылок, здесь есть сценарий bash, который вы можете использовать, чтобы легко добавить их в файл .gitignore репо:

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
1 голос
/ 19 апреля 2011

Использовать версию git> = 1.6

Git раньше относился к символическим ссылкам так же, как к обычным файлам, но более новые версии git (> = 1.6) проверяют, находится ли файл за символической ссылкой, и выдает фатальную ошибку.

например:.

# 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
...