Śledzenie w Git zmian modułu jakby był zwykłym kodem

Może się okazać, że chcemy aby w naszym projekcie, w którym używamy Composera, zmiany w paczce były śledzone w głównym drzewie aplikacji. Inaczej mówiąc chcemy zrezygnować z traktowanie paczki jako submodułu, tak aby była traktowana jak normalny kod aplikacji.
Jeśli spróbujemy dodać paczkę, skończy się to tylko dodaniem pustego folderu.
Próba dodanie podfolderu z paczki zakończyć się może czymś podobnym:
# git add public_html/protected/vendors/crisu83/yiistrap/assets/
fatal: Path 'public_html/protected/vendors/crisu83/yiistrap/assets/' is in submodule 'public_html/protected/vendors/crisu83/yiistrap'

Wg mnie najlepszym wyjściem jest użycie czwartej metody opisanej tutaj: http://getcomposer.org/doc/faqs/should-i-commit-the-dependencies-in-my-vendor-directory.md.
W skrócie, chodzi o wpisanie do .gitignore naszej aplikacji ścieżki do ignorowania folderów .git w naszych modułach. Dzięki temu możemy dodać zawartość modułów do naszej aplikacji i Composer bez problemu będzie aktualizował nasze moduły.

Jeśli z jakiegoś powodu nie działałoby dodanie modułu do gita można spróbować najpierw usunąć moduł z opcją --cached:

# git rm --cached public_html/protected/vendors/crisu83/yiistrap
rm 'public_html/protected/vendors/crisu83/yiistrap'

Po tej operacji możemy bez problemu dodać moduł.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *