Hvordan kan jeg kun overføre ændringer af filnavne med hensyn til store og små bogstaver i Git?

Jeg har ændret et par filnavne ved at fjerne det første bogstav, som i Name.jpg til name.jpg. Git genkender ikke disse ændringer, og jeg var nødt til at slette filerne og uploade dem igen. Er der en måde, hvorpå Git kan være case-sensitive, når det kontrollerer ændringer i filnavne? Jeg har ikke foretaget nogen ændringer i selve filen.

Du kan bruge git mv:

git mv -f OldFileNameCase newfilenamecase
Kommentarer (16)

Git har en konfigurationsindstilling, der fortæller, om der skal tages hensyn til store og små bogstaver eller ej: core.ignorecase. Hvis du vil bede Git om at være case-sensitiv, skal du blot sætte denne indstilling til false:

git config core.ignorecase false

Dokumentation

Fra [git config-dokumentationen] (http://jk.gs/git-config.html):

core.ignorecase (html)

Hvis den er sand, aktiverer denne indstilling forskellige løsninger, så git kan fungere bedre på filsystemer, der ikke er følsomme over for store og små bogstaver, som FAT. Hvis en mappeliste for eksempel finder makefile, når git forventer Makefile, vil git antage, at det i virkeligheden er den samme fil, og fortsætte med at huske den som Makefile.

Standardværdien er false, undtagen git-clone(1) eller git-init(1) vil undersøge og sætte core.ignorecase til true, hvis det er relevant, når repositoriet oprettes.

Case-insensitive filsystemer

De to mest populære operativsystemer, der har case-insensitive filsystemer, som jeg kender til, er

  • Windows
  • OS X
Kommentarer (20)

Dette er, hvad jeg gjorde på OS X:

git mv File file.tmp
git mv file.tmp file

To trin, fordi jeg ellers fik en "file exists"-fejl. Måske kan det gøres i ét trin ved at tilføje --cached eller lignende.

Kommentarer (7)