Rozglądałem się za duplikatami i chociaż niektóre z nich mają podobne tytuły, nie znalazłem nikogo, kto miałby taki sam problem jak ja, więc tutaj idzie.Jak dodać plik do indeksu w haku git pre-commit
Napisałem skrypt, który działa na pre-commit
i wykorzystuje dane wyjściowe z git status --porcelain
do kompilowania dowolnego pliku LESS w moim projekcie, który się zmienił. Ta część działa dobrze. Ale chcę, aby pliki .css zostały włączone do bieżącego zatwierdzenia. Tak więc oprócz uruchamiania kompilatora, mój skrypt uruchamia git add <filename>
. A tutaj sprawy stają się trudne.
Plik jest dodany do indeksu, ale nie jest indeksem bieżącego zatwierdzenia. Więc jeśli zmodyfikuję style.less
i uruchomię git commit -a
(lub ręcznie) kompilator powinien wygenerować style.css
i style.min.css
i dodać je do bieżącego zatwierdzenia. Ale zachowanie, które zauważyłem, to tylko style.less
, pomimo dwóch plików .css
dodawanych do indeksu dla następnego zatwierdzenia.
Moje pytanie brzmi: czy istnieje sposób dodawania plików do zatwierdzenia w haczyku przed zatwierdzeniem, aby zostały zastosowane do tego zatwierdzenia? Zauważ, że przed uruchomieniem hook przed zatwierdzeniem te dwa pliki .css
nie są modyfikowane, więc nie mogę po prostu dodać ich wcześniej. Wiem również, że mogę wyjść z haka z niezerowym stanem, więc zatwierdzenie zostanie anulowane, ale pliki zostaną dodane, ale mam nadzieję, że tego uniknę. Jakieś lepsze pomysły?
Ponieważ pliki CSS nie są plikami binarnymi, są to tylko statyczne pliki tekstowe. Wygenerowane pliki nie są umieszczane w kontroli wersji, ponieważ zwykle powodują konflikty scalania, w których naprawdę nie ma dobrego sposobu na ich rozwiązanie (pliki binarne), ale w przypadku plików CSS rzadko występuje taki problem. Nie chciałem instalować kompilatora LESS na naszych serwerach internetowych, aby zrobić to po scaleniu/aktualizacji. Jednak wszystko, co powiedzieliśmy, okazało się łatwiejszym sposobem na osiągnięcie tego, co próbowałem zrobić, mimo że nie było idealne. –
Dlaczego jest to zaakceptowana odpowiedź? To wcale nie rozwiązuje problemu. – frhd
Sądzę, że przyjął moją "twoją niewłaściwą" odpowiedź, ponieważ w tym przypadku rozwiązał on swój problem (prawdopodobnie bez odpowiedzi na jego pytanie). Jeśli nie sprawdza plików LESS w pierwszej kolejności, problem "jak je przełączyć do zadania" zniknie. – plaugg