Как получить символики Git-Ignore на модуле Magento, установленном композитором

magento.stackexchange https://magento.stackexchange.com/questions/4641

  •  16-10-2019
  •  | 
  •  

Вопрос

Я устанавливаю модули с помощью composer.phar.

Это создает файлы Symlinks в publichtml/app/code/community (например) с целью vendor/themodule....

В моем .gitignore Я исключил каталог поставщиков - но ссылки, конечно, все равно окажутся в GIT.

Есть легкий способ автоматически исключить эти ссылки? (кроме добавления всего вручную в .gitignore)

Я должен сказать, что у меня есть некоторые require-dev Модули, которые не должны оказаться на конечном сервере, поэтому наличие этих ссылок, по крайней мере, не так приятно.

Это было полезно?

Решение

Лучшее, что я придумал, это запустило это после установки/обновления композитора

$ find * -type l -not -exec grep -q "^{}$" .gitignore \; -print >> .gitignore

Команда должна выполняться в каталоге GIT ROOT. Это добавляет все символики в файл .gitignore, которого еще нет.

Другие советы

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

for f in $(git status --porcelain | grep '^??' | sed 's/^?? //'); do
    test -L "$f" && echo $f >> .gitignore;
    test -d "$f" && echo $f\* >> .gitignore;
done

В настоящее время есть вариант для этого в установщике Composer. Просто установите дополнительные https://github.com/magento-hackathon/magento-composer-installer/blob/master/readme.md#auto-add-files-to-gitignore

Комбинированное решение @colinm и @vinai, которое работает для меня

for f in $(git status --porcelain | grep '^??' | sed 's/^?? //'); do
    if test -L "$f"
    then
        test -L "$f" && echo $f >> .gitignore;
    elif test -d "$f"
    then
        find ${f%/} -type l -not -exec grep -q "^{}$" .gitignore \; -print >> .gitignore
    fi
done
Лицензировано под: CC-BY-SA с атрибуция
Не связан с magento.stackexchange
scroll top