Git chce usunąc moje pliki.

0

Mam taką dziwną sytuację i nie wiem jak sobie z tym poradzić. Git chce usunąć moje pliki :(
Pracuje z gitem na Netbeans. Projekt w PHP (Phalcon).
Podczas reorganizacji mojego projektu (zamiast jednego viewhelpera dodałem kilka) , usunąłem jeden katalog z plikiem i dodałem nowy katalog z kilkoma nowymi plikami.
Po kilku dniach i kilku commitach zauważyłem, że nowe te pliki były teraz wyszarzone (podobnie wygląda mój plik konfiguracyjny w Phalconie, który skonfigurowałem , aby Git go ignorował).
Po wykonaniu w gicie add, commmit, Git usunął mi te nowe pliki.
Na szczęście w odtworzyłem te pliki i jeszcze raz dodałem.
Niestety, teraz widzę że znowu są wyszarzone, a w statusie widzę że są deleted. Podejrzewam, że po kolejnym commicie znowu git je usunie.
O co tu chodzi?
Czy ktoś może mi wyjaśnić dlaczego tak się dzieje i jak zapobiec usuwaniu tych plików?
Z góry dzięki za wszelkie odpowiedzi.

P.S.
Mogę jeszcze dodać, że po pierwszym dodaniu plików i commicie, zmieniłem nazwy tych plików z pisanych małą literą na dużą (np. z showWidget.php na ShowWidget.php) i chyba po tej operacji coś się posypało. Teraz mam w bitbucket 2 wersje tych samych plików - pisane małą i dużą literą. Może to coś namieszało?
Pracuję pod Windows.

0

Dla windowsa wielkość liter nie ma znaczenia

0

Tak, ale swój projekcik wyrzucam późnej na serwer Linuksowy i tam wielkość liter już ma znaczenie :)

1

Jakie polecenie wykonujesz w Gicie?

0

Dziękuję za odzew. Poradziłem sobie.
Dla potomnych - rozwiązanie.
Jak zauważył mr_jaro Windows nie rozróżnia wielkości liter, a wydaje mi się że Git rozróżnia.
Zrobiłem tak:
Zrobiłem kopie plików.
Zmieniłem nazwy plików na pisane małą literą.
Zrobiłem commita.
Usunąłem pliki.
Zrobiłem commita.
Przywróciłem kopie, tym razem nazwy plików pisane były już dużą literą.
Kolejny commit.
Czyli jeśli chcielibyście zmienić nazwę pliku w projekcie, zmieniając tylko wielkość liter a pracujecie z Git, najpierw trzeba usunąć stare pliki i zrobić commita, a później przywrócić pliki z uprzednio wykonanej kopii i zmienić wielkość liter. W przeciwnym razie windows nie będzie wiedział że coś się zmieniło i będą dziać się takie kwiatki.

1

Rozwiązanie bardziej przyjazne to użyć: git mv -f filename FileName
Ewentualnie: git config core.ignorecase false, ale z tym należy uważać i wiedzieć dokładnie jak działa w kwestii oznaczania plików do usunięcia.

I 3 opcja, która mi przyszła do głowy. Trochę przypomina Twoją, ale bez konieczności kopii. Usunąć pliki z indeksu git rm -rf --cached xxx, ale zostawić na dysku. Zrobić commita, zmienić nazwę w windowsie. Dodać pliki do indeksu ponownie git add i commit.

1 użytkowników online, w tym zalogowanych: 0, gości: 1