Jak sprawić, by git ignorował zmiany w przypadku?

106

Nie jestem pewien, co się tutaj dzieje, ale czasami konkretny plik w moim repozytorium zmienia wielkość liter w swojej nazwie. na przykład,:

przed: File.h

po: file.h

Naprawdę nie obchodzi mnie, dlaczego tak się dzieje, ale powoduje to, że git myśli, że to nowy plik, a potem muszę wrócić i zmienić nazwę pliku. Czy możesz po prostu zrobić git ignorować zmiany wielkości liter?

[edytuj] Podejrzewam, że to Visual Studio robi coś dziwnego z tym konkretnym plikiem, ponieważ zdarza się to najczęściej, gdy otwieram go i zapisuję po zmianach. Nie mam jednak sposobu, aby naprawić błędy w VS, ale mam nadzieję, że git powinien być nieco bardziej wydajny.

1800 INFORMACJE
źródło
1
Odp .: Zapisywanie plików w programie Visual Studio małymi literami Której wersji programu Visual Studio używasz? Kiedy ostatnio sprawdzałem, wydawało się to być lepsze w wersji 2008. Wydawało się, że w 2005 roku błąd pojawił się, gdy pliki były otwierane za pomocą debugera zamiast eksploratora rozwiązań.
Adam Mitz,
Właściwie tak, to jest rok 2005. Jednak przez chwilę nie ma szans na aktualizację.
1800 INFORMACJA

Odpowiedzi:

178

Od wersji 1.5.6 dostępna jest ignorecaseopcja w [core]sekcji.git/config

np. dodaj ignorecase = true

Aby zmienić to tylko dla jednego repozytorium, z tego folderu uruchom:

git config core.ignorecase true

Aby zmienić to globalnie:

git config --global core.ignorecase true
MarkB
źródło
21
git config core.ignorecase true lub git config --global core.ignorecase true do zastosowania globalnego.
Aaron Jensen
@graywh: Jest to udokumentowane w git-config pod core.ignorecase ( kernel.org/pub/software/scm/git/docs/git-config.html )
Ben Lings,
4
Dzięki, w końcu odkryłem, dlaczego git nie bierze pod uwagę moich zmian w przypadku. ignorecase = falsezałatwił sprawę, domyślnie ustawiono na true-_-
Alex C
15

Możesz zmusić git do zmiany nazwy pliku w sposób uwzględniający wielkość liter za pomocą tego polecenia:

git mv --cached name.txt NAME.TXT

Zauważ, że nie zmienia to wielkości liter pliku w twojej wyewidencjonowanej kopii na partycji Windows, ale git rejestruje zmianę wielkości liter i możesz ją zatwierdzić. W przyszłych kasach będzie używana nowa obudowa.

Andrew Arnott
źródło
1
„błąd: nieznana opcja w pamięci podręcznej”. Nie ma tego również w dokumentacji: git-scm.com/docs/git-mv
Alex
12

W wersji 1.6.1.9 gita dla Windows stwierdziłem, że "ignorecase = true" w konfiguracji jest już ustawiony domyślnie.

John C.
źródło
7
Tak, a kiedy pracujesz z plikami Java, chcesz, aby to ustawienie miało wartość false, w przeciwnym razie możesz mieć problemy podczas wykonywania takiej refaktoryzacji (klasa HTMLParser staje się HtmlParser lub odwrotnie).
PhiLho
to samo dla wersji git 2.10.1.windows.1
Kars Barendrecht
3
Wiem, że to jest stare, ale w systemie Windows bezsensowne jest ustawianie ignorowania wielkości liter na fałsz, ponieważ Windows jest systemem operacyjnym nie uwzględniającym wielkości liter. Dotyczy to niezależnie od tego, czy pracujesz z Javą, czy (tchnij!) C # lub czymkolwiek innym.
ingyhere
5

Sytuacja opisana w pytaniu powtarza się teraz w systemie Mac OS X, wersja git> = 1.7.4 (chyba). Lekarstwem jest ustawienie wartości ignorecase = false i zmiana nazw plików z małymi literami (które zostały zmienione w ten sposób przez git, a nie Visual Studio) z powrotem na ich UsualCase ręcznie (tj. „Mv myname MyName”).

Więcej informacji tutaj .

akauppi
źródło