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.


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

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.


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.


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 .

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.