Kaip padaryti, kad failų pavadinimų pakeitimai būtų tik jautrūs Git'ui?

Name.jpg kelių failų pavadinimą, padalijant pirmąją raidę, kaip ir Name.jpg , į Name.jpg . „Git“ neatpažįsta šių pakeitimų ir turėjau ištrinti failus ir juos vėl įkelti. Ar yra būdas, kad git gali būti didžiosios ir mažosios raidės, kai tikrinama, ar pasikeitė failų pavadinimai? Aš pats nepadariau jokių pakeitimų.

930
16 июля '13 в 20:41 2013-07-16 20:41 Gil Shulman paprašė liepos 16 d. 13 val. 20:41 2013-07-16 20:41
@ 11 atsakymų

Galite naudoti git mv :

 git mv -f OldFileNameCase newfilenamecase 
1144
03 янв. Atsakė Keith Smiley sausio 03 d 2014-01-03 18:57 '14 at 18:57 2014-01-03 18:57

„Git“ turi konfigūracijos parametrą, kuris nurodo, ar jis turėtų būti jautrus, ar nejautrus: core.ignorecase . Jei norite pasakyti „Git“ atvejo-senstive vertę, paprasčiausiai nustatykite šį parametrą kaip false :

 git config core.ignorecase false 

Dokumentacija

git config dokumentacijos :

core.ignorecase

Jei tiesa, ši parinktis leidžia naudoti įvairius problemos sprendimo būdus, kad „Git“ geriau veiktų failų sistemose, kurios nėra jautrios didelei raidei, pvz., FAT. Pavyzdžiui, jei katalogų sąraše aptinkama makefile , kai „Git“ tikisi „ makefile , „Git“ darys prielaidą, kad tai iš tiesų yra tas pats failas ir toliau prisimena jį kaip „ makefile .

Numatytoji reikšmė yra klaidinga, išskyrus git-clone (1) arba git -init (1), jei reikia kuriant saugyklą, tikrins ir nustatys core.ignorecase true.

Byla nejautrios failų sistemos

Dvi populiariausios operacinės sistemos, kuriose nėra nejautrių failų sistemų, kurias aš žinau

  • >
  • OS X
754
17 июля '13 в 1:52 2013-07-17 01:52 atsakymą pateikė vartotojo456814 liepos 17 d. 13:52 2013-07-17 01:52

Tai aš padariau OS X:

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

Du žingsniai, nes priešingu atveju gavau „failo egzistavimo“ klaidą. Galbūt tai gali būti padaryta vienu žingsniu pridedant - --cached arba such.

93
13 нояб. Sijmen Mulder atsakymas lapkričio 13 d 2013-11-13 17:27 '13, 17:27, 2013-11-13 17:27

Naudodamas „SourceTree“, galėjau tai padaryti iš vartotojo sąsajos.

  • Pervardykite FILE.ext į whatever.ext
  • Etapas
  • Dabar pervardykite whatever.ext FILE.ext į FILE.ext
  • Pakartokite šį failą dar kartą.

Tai truputį varginantis, bet jei jums reikia padaryti tik keletą failų, tai gana greitai.

87
28 окт. atsakymas, kurį pateikė Chris Barr, spalio 28 d 2016-10-28 17:40 '16 at 17:40 pm 2016-10-28 17:40

OSX sistemoje galite naudoti „Disk Utility“, kad sukurtumėte standžiojo disko atvaizdą / diską, kad išvengtumėte šios problemos ir išvengtumėte kitų problemų, susijusių su failų sistemos kūrimu be atvejų nejautrumo.

Paleiskite disko įrankį, sukurkite naują disko atvaizdą ir naudokite šiuos nustatymus (arba pakeiskite juos pagal savo pageidavimus, bet išsaugokite ją didžiosios ir mažosios raidės atveju):

2019

37
03 окт. atsakymą pateikė vartotojo1821510 03 okt. 2014-10-03 22:18 '14, 10:18 pm 2014-10-03 22:18

Kartais naudinga laikinai pakeisti atvejo jautrumą „Git“. Du galimi metodai:

1 metodas:

git -c core.ignorecase=true checkout mybranch kad išjungtų atvejo jautrumą, skirtą vienai komandai. Arba apskritai: git -c core.ignorecase= <<true or false>> <<command>> . (Ačiū VonC už tai, kad pateikėte tai komentaruose.)

2 metodas:

Jei norite pakeisti nustatymą ilgesniam laikotarpiui (pvz., Jei prieš keisdami jį reikia atlikti kelias komandas):

  1. git config core.ignorecase (grąžina dabartinius nustatymus, pavyzdžiui, false ).
  2. git config core.ignorecase <<true or false>> - nustatykite norimą naują parametrą.
  3. ... Paleisti kelias kitas komandas ...
  4. git config core.ignorecase <<false or true>> - grąžina konfigūracijos reikšmę į ankstesnę vertę.
15
10 июля '18 в 14:05 2018-07-10 14:05 atsakė Steve Chambers liepos 10 d., 18 val

1) Pervardykite failą name1.jpg į name1.jpg

2) pašalinkite ištrintą failą Name.jpg

3) pervadinti failą name1.jpg į Name.jpg

4) pridėkite pridėtą Name.jpg failą į ankstesnį Name.jpg

 git add git commit --amend 
14
03 окт. atsakymas duotas razon 03 okt. 2016-10-03 22:13 '16 at 22:13 pm 2016-10-03 22:13

Iš kitų atsakymų išbandžiau šiuos sprendimus ir jie neveikė:

Jei saugykla yra talpinama „GitHub“, kaip ir mano, galite pervardyti failą šaltinyje (GitHub.com) ir priversti failo pervadinimą iš viršaus į apačią.

Toliau pateiktos instrukcijos priklauso nuo failo tipo, kurį bandote pervardyti, ty failo, kurį „GitHub“ laiko redaguojamu, tipą (kodą, tekstą ir pan.) Arba negalima redaguoti (vaizdas, dvejetainiai ir pan.) .

  1. Apsilankykite „GitHub.com“
  2. Eikite į savo saugyklą „GitHub.com“ ir pasirinkite filialą, kuriame dirbate
  3. Naudodamiesi svetainės failo navigacijos įrankiu, pereikite prie failo, kurį ketinate pervardyti.
  4. GitHub leidžia redaguoti failą naršyklėje?
    • a) redaguojama
      1. Spustelėkite piktogramą „Redaguoti šį failą“ (atrodo kaip pieštukas)
      2. Pakeiskite failo pavadinimą teksto failo pavadinimo įraše
    • b) nėra redaguojama
      1. Atidarykite mygtuką „Atsisiųsti“ naujame skirtuke ir išsaugokite failą kompiuteryje.
      2. Pervardykite atsisiųstą failą
      3. Ankstesniame „GitHub.com“ skirtuko lape spustelėkite piktogramą „Ištrinti šį failą“ (atrodo, kad ši šiukšliadėžė gali būti)
      4. Įsitikinkite, kad pasirinktas mygtukas „Rašyti tiesiai į šakos branchname šakas“ ir spustelėkite mygtuką „Įtraukti pakeitimus“.
      5. Tame pačiame kataloge GitHub.com spustelėkite „Įkelti failus“
      6. Atsisiųskite pervardytą failą iš savo kompiuterio
  5. Įsitikinkite, kad pasirinktas mygtukas „Rašyti tiesiai į šakos branchname šakas“ ir spustelėkite mygtuką „Įtraukti pakeitimus“.
  6. Vietoje, išduoti / gauti / traukti filialą
  7. Padaryta
8
31 окт. atsakymą gmeben pateikė spalio 31 d 2017-10-31 21:22 '17 21:22 2017-10-31 21:22

„Mac OSX High Sierra 10.13“ tai šiek tiek pataiso. Tiesiog sukurkite virtualų APFS skaidinį savo git projektams, pagal nutylėjimą jis neturi jokio dydžio ribos ir neatima vietos.

  1. Disk Utility (Disko įrankis) spustelėkite mygtuką +, kai pasirinktas konteinerio diskas.
  2. Pasirinkite formatu APFS (-ius)
  3. Skambinkite Sensitive
  4. pelno
  5. Neprivaloma: sukurkite aplanką „Sensitive“ su pavadinimu „ git ir „ ln -s/Volumes/Sensitive/git/Users/johndoe/git

Jūsų diskas bus /Volumes/Sensitive/

2019

Su šia problema susidūriau kelis kartus „MacOS“. „Git“ yra didžiosios ir mažosios raidės, tačiau „Mac“ išsaugo tik atvejį.

Kažkas išsprendžia failą: Foobar.java ir po kelių dienų nusprendžia jį pervadinti į Foobar.java . Ištraukus naujausią kodą, jis nepavyksta su The following untracked working tree files would be overwritten by checkout...

Vienintelis patikimas būdas, kurį matiau, yra:

  • git rm Foobar.java
  • Saugokite jį pranešimu, kad negalite praleisti git commit -m 'TEMP COMMIT!!'
  • Velkami
  • Tai sukels konfliktą, kuris privers jus sujungti konfliktą, nes jūsų pakeitimas ištrintas, bet kitas pakeitimas buvo pervadintas (taigi ir problema).
    • Priimkite savo pakeitimą, kuris yra „ištrinti“
    • git rebase --continue
  • Dabar palikite savo git rebase -i HEAD~2 ir drop TEMP COMMIT!!
  • Patvirtinkite, kad failas dabar vadinamas Foobar.java
3
05 авг. Ashwin Jayaprakash atsakymas, rugpjūčio 05 d 2016-08-05 20:23 '16 at 20:23 2016-08-05 20:23

Kai atlikote daug failų pervadinimo, o kai kurie iš jų tiesiog pakeičia bylą, sunku prisiminti, kas tai yra. rankiniu būdu „git perkėlimas“, failas gali būti gana naudingas. Taigi, ką turėčiau keisti failo pavadinimą, atlikite šiuos veiksmus:

  • ištrinti visus failus ir aplankus be git į kitą aplanką / saugyklą.
  • pataisykite dabartinį tuščią git aplanką (tai bus rodoma, kai visi failai bus ištrinti.)
  • pridėkite visus failus atgal į git / repository šaltinio aplanką.
  • pataisykite dabartinį ne tuščią aplanką.

Taip bus pašalintos visos problemos nesistengiant nustatyti, kuriuos failus ar aplankus pervadinote.

2
29 апр. Atsakymas, kurį pateikė Ricardo Virtudazo Jr Bal 29 2017-04-29 14:00 '17 val. 2 val. 2017-04-29 14:00

Kiti klausimai apie žymes arba Užduoti klausimą