Come Git-ignorare link simbolici su un modulo Magento installato dal compositore

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

  •  16-10-2019
  •  | 
  •  

Domanda

I installare moduli usando composer.phar.

Questo crea file collegamenti simbolici nelle publichtml/app/code/community (per esempio) con l'obiettivo di vendor/themodule....

Nel mio .gitignore ho escluso la cartella vendor - ma i collegamenti sarebbe ovviamente ancora finire nel git

.

C'è un semplice modo per automically escludere quei link? (Altro che aggiungere tutto manualmente al .gitignore)

Devo dire che ho alcuni moduli require-dev che non dovrebbe finire sul server finale -. In modo da avere quei collegamenti ci sarebbero almeno non così bello

È stato utile?

Soluzione

Il migliore mi è venuta è stata l'esecuzione di questo dopo un compositore installare / update

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

Il comando deve essere eseguito nella directory principale git. Aggiunge tutti i collegamenti simbolici al file .gitignore che non sono già lì.

Altri suggerimenti

Questo metodo aggiunge solo link simbolici non monitorate in modo può essere ripetuto senza l'aggiunta di voci duplicate, i link simbolici che si trovano in sottomoduli o sono comunque già ignorati, o intenzionalmente monitorati link simbolici.

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

Al giorno d'oggi c'è un'opzione per questo nel programma di installazione compositore. A soli set extra.auto-add-files-to-gitignore https://github.com/magento-hackathon/magento-composer-installer/blob/master/README.md#auto-add-files-to-gitignore

La soluzione combinata di @ColinM e @Vinai che funziona per me

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
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a magento.stackexchange
scroll top