Kako izmjene naziva datoteka u Git-u učiniti osjetljivima samo za mala i velika slova

Promijenio sam ime nekoliko datoteka razdvajanjem prvog slova, kao u Name.jpg , u Name.jpg . Git ne prepoznaje te promjene i morao sam izbrisati datoteke i ponovno ih prenijeti. Postoji li način na koji git može biti osjetljiv na velika i mala slova prilikom provjere promjena imena datoteka? Nisam napravio nikakve promjene u samoj datoteci.

930
16 июля '13 в 20:41 2013-07-16 20:41 Gil Shulman je pitao 16. srpnja 2013. u 20:41 2013-07-16 20:41
@ 11 odgovora

Možete koristiti git mv :

 git mv -f OldFileNameCase newfilenamecase 
1144
03 янв. Odgovorio Keith Smiley dana 03. siječnja 2014-01-03 18:57 '14 u 18:57 2014-01-03 18:57

Git ima konfiguracijski parametar koji kaže da li bi trebao biti osjetljiv na velika i mala slova ili neosjetljiv: core.ignorecase . Da biste Gitu pokazali vrijednost slučaja, jednostavno postavite ovaj parametar na false :

 git config core.ignorecase false 

dokumentacija

Iz dokumentacije za git config :

border=0

core.ignorecase

Ako je to točno, ova opcija vam omogućuje da koristite različita rješenja kako bi Git bolje funkcionirao na datotečnim sustavima koji ne razlikuju velika i mala slova, kao što je FAT. Na primjer, ako popis direktorija otkrije makefile datoteku, kada Git očekuje makefile , Git će pretpostaviti da je to uistinu ista datoteka i da je nastavlja pamtiti kao makefile .

Zadana vrijednost je false, osim za git-clone (1) ili git -init (1) će provjeriti i postaviti core.ignorecase true ako je potrebno pri stvaranju spremišta.

Datotečni sustavi neosjetljivi na slučajeve

Dva najpopularnija operacijska sustava koja nemaju datotečne sustave koji nisu osjetljivi na veličinu slova, poznati su

  • za prozore
  • OS X
754
17 июля '13 в 1:52 2013-07-17 01:52 odgovor je dao korisnik456814 17. srpnja '13 u 1:52 2013-07-17 01:52

To je ono što sam učinio na OS X:

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

Dva koraka, jer sam inače dobio grešku "datoteka postoji". Možda se to može učiniti u jednom koraku dodavanjem --cached ili slično.

93
13 нояб. Odgovor dao Sijmen Mulder 13. studenog 2013-11-13 17:27 '13 u 17:27 2013-11-13 17:27

Koristeći SourceTree, uspio sam sve to iz korisničkog sučelja.

  • Preimenujte FILE.ext u whatever.ext
  • faza
  • Sada promijenite FILE.ext u FILE.ext
  • Ponovite tu datoteku.

Malo je zamorno, ali ako vam je potrebno samo nekoliko datoteka, to je prilično brzo.

87
28 окт. Odgovor dao Chris Barr 28. listopada 2016-10-28 17:40 '16 u 17:40 2016-10-28 17:40

U OSX-u možete koristiti Disk Utility za stvaranje slike / diska tvrdog diska kako biste izbjegli ovaj problem i izbjegli druge probleme s razvojem u datotečnom sustavu bez osetljivosti slučaja.

Pokrenite uslužni program diska, stvorite novu sliku diska i koristite sljedeće postavke (ili promijenite svoj prikaz po želji, ali spremite razliku između malih i velikih slova):

2019

37
03 окт. odgovor daje korisnik1821510 03 okt. 2014-10-03 22:18 '14 u 22:18 sati 2014-10-03 22:18

Ponekad je korisno privremeno promijeniti osjetljivost slova u Git-u. Dvije moguće metode:

Prva metoda:

git -c core.ignorecase=true checkout mybranch za onemogućavanje osjetljivosti git -c core.ignorecase=true checkout mybranch i malih slova za jednu naredbu za checkout . Ili općenitije: git -c core.ignorecase= <<true or false>> <<command>> . (Zahvaljujemo VonC-u što je to predložio u komentarima.)

Metoda 2:

Da biste promijenili postavku na dulje razdoblje (na primjer, ako trebate izvršiti nekoliko naredbi prije ponovne promjene):

  1. git config core.ignorecase (vraća trenutne postavke, na primjer, false ).
  2. git config core.ignorecase <<true or false>> - postavite željeni novi parametar.
  3. ... Pokreni nekoliko drugih naredbi ...
  4. git config core.ignorecase <<false or true>> - vraća konfiguracijsku vrijednost na prethodnu vrijednost.
15
10 июля '18 в 14:05 2018-07-10 14:05 odgovorio je Steve Chambersu 10. srpnja '18 u 14:05 sati 2018-07-10 14:05

1) Preimenujte datoteku name1.jpg u name1.jpg

2) popraviti izbrisanu datoteku Name.jpg

3) preimenujte ime datoteke1.jpg u Name.jpg

4) dodajte dodanu datoteku Name.jpg prethodnom Name.jpg

 git add git commit --amend 
14
03 окт. odgovor je dao razon 03. 2016-10-03 22:13 '16 u 22:13 sati 2016-10-03 22:13

Isprobao sam sljedeća rješenja iz drugih odgovora, a oni nisu radili:

Ako je vaše spremište hostirano na GitHubu, poput moje, možete preimenovati datoteku u izvoru (GitHub.com) i prisiliti preimenovanje datoteke od vrha prema dnu.

Upute u nastavku ovise o vrsti datoteke koju pokušavate preimenovati, tj. Vrsti datoteke koju GitHub smatra uređivom (kôd, tekst itd.) Ili se ne može uređivati ​​(slika, binarna datoteka, itd.) U pregledniku ,

  1. Posjetite GitHub.com
  2. Idite u spremište na GitHub.com i odaberite granu u kojoj radite
  3. Pomoću alata za navigaciju datoteka web-lokacije idite do datoteke koju ćete preimenovati.
  4. GitHub vam omogućuje uređivanje datoteke u pregledniku?
    • a.) uređivati
      1. Kliknite ikonu "Uredi ovu datoteku" (izgleda kao olovka)
      2. Promijenite naziv datoteke u unosu naziva tekstualne datoteke
    • b) nije moguće uređivati
      1. Otvorite gumb "Preuzmi" na novoj kartici i spremite datoteku na računalo.
      2. Preimenujte preuzetu datoteku
      3. Na prethodnoj kartici na GitHub.com kliknite ikonu "Izbriši ovu datoteku" (izgleda kao smeće)
      4. Provjerite je li odabran radio gumb "Napiši izravno na branchname grane" i kliknite gumb "Obavi izmjene".
      5. U istom direktoriju na GitHub.com kliknite "Učitaj datoteke"
      6. Preuzmite preimenovanu datoteku s računala
  5. Provjerite je li odabran radio gumb "Napiši izravno na branchname grane" i kliknite gumb "Obavi izmjene".
  6. Lokalno izdajte / primite / povucite granu
  7. Gotovo je
8
31 окт. odgovor je dao gmeben 31. listopada 2017-10-31 21:22 '17 u 21:22 2017-10-31 21:22

Mac OSX High Sierra 10.13 donekle popravlja ovo. Samo kreirajte virtualnu APFS particiju za vaše git projekte, po defaultu nema ograničenja veličine i ne zauzima prostor.

  1. U uslužnom programu Disk Utility kliknite gumb + kada je odabran kontejnerski disk.
  2. Odaberite APFS (-ove obavezno) u formatu
  3. Nazovite ga Sensitive
  4. dobit
  5. Izborno: stvorite mapu u Sensitive s nazivom git i ln -s/Volumes/Sensitive/git/Users/johndoe/git

Vaš će pogon biti u /Volumes/Sensitive/

2019

Ovaj problem susreo sam nekoliko puta u MacOS-u. Git je osjetljiv na velika i mala slova, ali Mac zadržava samo slučaj.

Netko popravlja datoteku: Foobar.java i nakon nekoliko dana odluči preimenovati je u Foobar.java . Kada izvadite najnoviji kôd, ne uspije sa The following untracked working tree files would be overwritten by checkout...

Jedini pouzdan način na koji sam vidio ovo rješenje je:

  • git rm Foobar.java
  • Osigurajte ga porukom da ne možete preskočiti git commit -m 'TEMP COMMIT!!'
  • prikolica
  • To će uzrokovati sukob koji će vas prisiliti na spajanje sukoba - jer je vaša izmjena izbrisala, ali je druga promjena preimenovana (otuda problem).
    • Prihvatite promjenu koja je "izbriši"
    • git rebase --continue
  • Sada ostavite svoje rješenje git rebase -i HEAD~2 i drop TEMP COMMIT!!
  • Potvrdite da se datoteka sada zove Foobar.java
3
05 авг. Odgovor dao Ashwin Jayaprakash 05. \ T 2016-08-05 20:23 '16 u 20:23 2016-08-05 20:23

Kada ste učinili mnogo preimenovanja datoteka, a neki od njih samo zamjenjuju slučaj, teško je zapamtiti što je to. ručno "git relocation", datoteka može biti vrlo korisna. Dakle, što bih učinio u postupku promjene naziva datoteke, slijedite ove korake:

  • izbrišite sve datoteke i mape bez git-a u drugu mapu / spremište.
  • popraviti trenutnu praznu mapu git (to će se prikazati kao izbrisane sve datoteke).
  • dodati sve datoteke natrag u izvornu mapu git / repozitorij.
  • popraviti trenutnu nepotpunu mapu git.

Time ćete otkloniti sve probleme ne pokušavajući odrediti koje datoteke ili mape ste preimenovali.

2
29 апр. Odgovor dao Ricardo Virtudazo Jr Apr 29 2017-04-29 14:00 '17 u 14 sati 2017-04-29 14:00