Come fare in modo che git ignori le modifiche nel caso?


106

Non sono molto sicuro di cosa stia succedendo qui, ma a volte un particolare file nel mio repository cambierà il suo nome. per esempio,:

prima: File.h

dopo: file.h

Non mi interessa davvero perché sta succedendo, ma questo fa sì che git pensi che sia un nuovo file, e quindi devo andare a cambiare il nome del file. Puoi semplicemente fare in modo che git ignori le modifiche alle maiuscole?

[modifica] Sospetto che Visual Studio stia facendo qualcosa di strano con quel particolare file, perché sembra che accada più spesso quando lo apro e lo salvo dopo le modifiche. Tuttavia, non ho alcun modo per correggere i bug in VS, ma spero che git dovrebbe essere un po 'più capace.


1
Ri: Visual Studio che salva i file in tutto minuscolo Quale versione di Visual Studio stai usando? L'ultima volta che ho controllato questo sembrava essere migliore nella versione del 2008. Nel 2005 il bug sembrava verificarsi quando i file venivano aperti tramite il debugger invece di Solution Explorer.
Adam Mitz

In realtà sì, questo è il 2005. Nessuna possibilità di aggiornamento per un po 'però.
1800 INFORMAZIONI

Risposte:


178

Dalla versione 1.5.6 è ignorecasedisponibile un'opzione nella [core]sezione di.git/config

ad es. aggiungi ignorecase = true

Per cambiarlo per un solo repository, da quella cartella esegui:

git config core.ignorecase true

Per cambiarlo a livello globale:

git config --global core.ignorecase true

21
git config core.ignorecase true o git config --global core.ignorecase true per applicare globalmente.
Aaron Jensen

@graywh: è documentato in git-config sotto core.ignorecase ( kernel.org/pub/software/scm/git/docs/git-config.html )
Ben Lings

4
Grazie, ho finalmente scoperto perché git non teneva conto delle modifiche al mio caso. ignorecase = falseha fatto il trucco, è stato impostato come truepredefinito -_-
Alex C

15

Puoi forzare git a rinominare il file in un modo solo maiuscolo con questo comando:

git mv --cached name.txt NAME.TXT

Nota che questo non cambia il caso del file nella tua copia ritirata su una partizione Windows, ma git registra la modifica del case e puoi eseguire il commit di quella modifica. Le casse future utilizzeranno il nuovo involucro.


1
"errore: opzione sconosciuta" memorizzata nella cache "." Non è elencato nemmeno nella documentazione: git-scm.com/docs/git-mv
Alex

12

Nella versione git 1.6.1.9 per Windows ho scoperto che "ignorecase = true" in config era già impostato di default.


7
Sì, e quando lavori con file Java, vuoi che questa impostazione sia impostata su false, altrimenti potresti avere problemi quando esegui tale refactoring (la classe HTMLParser diventa HtmlParser o viceversa).
PhiLho

lo stesso per la versione 2.10.1 di git. windows.1
Kars Barendrecht,

3
So che questo è vecchio, ma su Windows non ha senso impostare Ignorecase su false poiché Windows è un sistema operativo che non fa distinzione tra maiuscole e minuscole. Questo vale sia che tu stia lavorando con Java o (gasp!) C # o qualsiasi altra cosa.
ingyhere

5

La situazione descritta nella domanda ora si ripresenta con Mac OS X, versione git> = 1.7.4 (credo). La cura è impostare il tuo ignorecase = false e rinominare manualmente i file in minuscolo (che git è cambiato in quel modo, non Visual Studio) nel loro UsualCase (cioè 'mv myname MyName').

Maggiori info qui .

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.