Frage

Ich installiere Module mithilfe composer.phar.

Dies erstellt Symlinks -Dateien in publichtml/app/code/community (zum Beispiel) mit einem Ziel zu vendor/themodule....

In meinem .gitignore Ich habe das Verkäuferverzeichnis ausgeschlossen - aber die Links würden natürlich immer noch im Git enden.

Ist dort ein einfach Weg, um diese Links automatisch auszuschließen? (außer alles manuell zum .gitignore hinzuzufügen)

Ich muss sagen, dass ich welche habe require-dev Module, die nicht auf dem endgültigen Server landen sollten - also wäre es zumindest nicht so schön.

War es hilfreich?

Lösung

Das Beste, was ich mir ausgedacht habe, war, dies nach einer Installation/Aktualisierung eines Komponisten auszuführen

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

Der Befehl sollte im Git Root -Verzeichnis ausgeführt werden. Es fügt alle Symlinks zu der .gitignore -Datei hinzu, die nicht bereits da sind.

Andere Tipps

Diese Methode fügt nur nicht zusammengezogene Symlinks hinzu, kann also wiederholt werden, ohne dass doppelte Einträge, Symlinks in Submodule oder ansonsten bereits ignoriert oder absichtlich verfolgt werden.

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

Heutzutage gibt es im Composer Installer eine Option hierfür. Setzen Sie einfach extra.auto-add-files-to-Gitignore https://github.com/magento-hackathon/magento-composer-installer/blob/master/readme.md#auto-add-files-t-gitignore

Die kombinierte Lösung von @colinm und @vinai, die für mich funktioniert

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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange
scroll top