Git'də yalnız fayl həssaslığında fayl adlarına dəyişikliklər etmək olar?

Name.jpg kimi Name.jpg də ilk məktubu parçalayaraq bir neçə faylın adını dəyişdirdim. Git bu dəyişiklikləri tanımır və mən faylları silmək və yenidən yükləmək məcburiyyətindəyəm. Fayl ismindəki dəyişiklikləri yoxlayarkən git bir halda həssas ola bilərmi? Faylın özünə heç bir dəyişiklik etmədim.

930
16 июля '13 в 20:41 2013-07-16 20:41 Gil Şulman iyulun 16-da saat 20: 41-də soruşdu 2013-07-16 20:41
@ 11 cavab

Siz git mv istifadə edə bilərsiniz:

 git mv -f OldFileNameCase newfilenamecase 
1144
03 янв. Keith Smiley tərəfindən 03 yanvarda cavablandı 2014-01-03 18:57 '14 da 18:57 2014-01-03 18:57

Git, həssas və ya həssas olmalı olub olmadığını bildirən bir konfiqurasiya parametresine malikdir: core.ignorecase . Git-i senstive dəyərini bildirmək üçün sadəcə bu parametr false :

 git config core.ignorecase false 

Sənədlər

git config sənədlərindən :

border=0

core.ignorecase

Doğrudur, bu seçim, Git kimi FAT kimi böyük həcmli olmayan fayl sistemlərində daha yaxşı işləməyiniz üçün müxtəlif həllər istifadə etməyə imkan verir. Məsələn, kataloqu bir makefile algılarsa, Git bir makefile , Git, həqiqətən, eyni fayl olduğunu varsayar ve bir makefile olaraq hatırlamaya davam edir.

Git-lone (1) və ya git-init (1) istisna olmaqla, default dəyərinin saxta olması səhvdir və core.ignorecase yaratmaqda lazım olduqda core.ignorecase true olaraq təyin core.ignorecase .

Case-duyarsız fayl sistemləri

Mən bildiyim halda, həssas olmayan fayl sistemləri olmayan iki ən məşhur əməliyyat sistemi var

  • Windows üçün
  • OS X
754
17 июля '13 в 1:52 2013-07-17 01:52 cavab 17 iyul 17 : 37 -da user456814 tərəfindən verilmişdir 1:52 2013-07-17 01:52

X OS'də etdiyim işlər belədir:

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

İki addım, çünki başqa bir mənə "fayl mövcuddur" səhəri var. Bəlkə də bu, bir addımda - --cached və ya belə əlavə edilə bilər.

93
13 нояб. Sijmen Mulder tərəfindən verilmiş cavab 13 noyabr 2013-11-13 17:27 '13 at 17:27 2013-11-13 17:27

SourceTree istifadə edərək, bütün bunları istifadəçi interfeysindən edə bildim.

  • FILE.ext
  • Mərhələ
  • Xahiş edirik FILE.ext yenidən adlandırın
  • Bu faylı təkrarlayın.

Bir az yorucu, ancaq bir neçə fayl yaratmaq lazımdırsa, olduqca tezdir.

87
28 окт. Cavab Chris Barr tərəfindən verilmiş Oct 28 2016-10-28 17:40 '16 'da saat 17 : 40-da 2016-10-28 17:40

OSX-də, bu problemdən qaçınmaq üçün bir sabit disk image / disk image yaratmaq və fayl sistemindəki inkişafı ilə bağlı başqa problemləri qarşısını almaq üçün Disk Utility-dən istifadə edə bilərsiniz.

Disk proqramını işə salın, yeni bir disk şəkilləri yaradın və aşağıdakı parametrləri istifadə edin (və ya sevdiyinizə dəyişdirin, amma həssaslığa qənaət edin):

2019

37
03 окт. cavab 03 oktyabr 2007-ci il tarixində user1821510 tərəfindən verilir . 2014-10-03 22:18 '14 saat 10:18 'da 2014-10-03 22:18

Bəzən Git-də vəziyyət həssaslığını müvəqqəti olaraq dəyişdirmək faydalıdır. İki mümkün üsul:

Metod 1:

git -c core.ignorecase=true checkout mybranch bir checkout əmri üçün halda həssaslığı aradan git -c core.ignorecase=true checkout mybranch üçün git -c core.ignorecase=true checkout mybranch . Və ya daha ümumiyyətlə: git -c core.ignorecase= <<true or false>> <<command>> . (VonC-a təşəkkür edənlər üçün təşəkkür edirik).

Metod 2:

Bir ayarı daha uzun müddətə dəyişdirmək üçün (məsələn, yenidən dəyişdirməzdən əvvəl bir sıra əmrləri yerinə yetirməlisinizsə):

  1. git config core.ignorecase (mövcud parametrləri qaytarır, məsələn, false ).
  2. git config core.ignorecase <<true or false>> - istədiyiniz yeni parametrləri seçin.
  3. ... Bir sıra digər əmrləri işləyin ...
  4. git config core.ignorecase <<false or true>> - konfiqurasiya dəyərini əvvəlki dəyərə qaytarın.
15
10 июля '18 в 14:05 2018-07-10 14:05 Steve Chambersə 10 İyul, '18 'də 2:05' də 2018-07-10 14:05 cavab verdi

1) Name.jpg faylını name1.jpg

2) silinmiş fayl Name.jpg

3) file name1.jpg adını name1.jpg adını Name.jpg

4) əvvəlki töhfə əlavə Əlavə Name.jpg faylını əlavə Name.jpg

 git add git commit --amend 
14
03 окт. Cavab verildi razon 03 oktyabr . 2016-10-03 22:13 '16 saat 10:13 'da 2016-10-03 22:13

Digər cavablardan aşağıdakı həlləri sınamışam və onlar işləməmişdi:

Depounuz GitHub'da saxlanılırsa, mənim kimi, faylın mənbəyini (GitHub.com) yenidən adlandırmaq və faylın adını yuxarıdan aşağıya endirmək olar.

Aşağıdakı talimatlar, adını dəyişməyə çalışdığınız faylın tipinə, yəni GitHub'ın düzenlenebilen (kodu, mətn, və s.) Hesab etdiyi faylın növü və ya redaktə edilə bilməz (şəkil, ikili və s.) Bir brauzerdə .

  1. GitHub.com səhifəsini ziyarət edin
  2. GitHub.com-da depounuza gedin və işləyən filialı seçin
  3. Saytın faylı naviqasiya vasitəsini istifadə edərək, adını dəyişmək üçün gedirsiniz.
  4. GitHub bir brauzerdə bir fayl redaktə etməyə imkan verir?
    • a.) düzenlenebilir
      1. "Bu faylı düzəlt" simgesini (qələm kimi görünür) basın
      2. Faylın adını mətn faylının adı girişində dəyişdirin
    • b) düzenlenemez
      1. Yeni bir sekmedeki "Download" düyməsini açın və faylı kompüterinizə saxlayın.
      2. Yükləilən faylın adını dəyişin
      3. GitHub.com-un əvvəlki nişanında, "Bu faylı silmək" icon (zibil qutusuna bənzəyir)
      4. " branchname şöbələrinə birbaşa yaz" radiosu düyməsinin seçildiyini və "dəyişiklikləri qəbul et" düyməsini basın.
      5. GitHub.com-da eyni kataloqda "Faylları yüklə"
      6. Yenidən adlandırılan faylları kompüterinizdən yükləyin
  5. " branchname şöbələrinə birbaşa yaz" radiosu düyməsinin seçildiyini və "dəyişiklikləri qəbul et" düyməsini basın.
  6. Yerli olaraq filial açmaq / çəkmək / çəkmək
  7. Yapılır
8
31 окт. Cavab 31 oktyabrda gmeben tərəfindən verilir 2017-10-31 21:22 '17 də 21:22 2017-10-31 21:22 'də

Mac OSX High Sierra 10.13 bu qədər düzəldir. Yalnız git layihələriniz üçün virtual bir APFS bölməsini yaratın, default olaraq bu ölçü həddi yoxdur və yer almır.

  1. Disk Utility-də, Konteyner Disk seçildikdə + düyməsini basın.
  2. Formada APFS (-s mandatory) seçin
  3. Sensitive deyirəm
  4. mənfəət
  5. İsteğe bağlı: Ad git ve ln -s/Volumes/Sensitive/git/Users/johndoe/git ile Həssas bir qovluq yaradın.

Sürücünüz olacaq /Volumes/Sensitive/

2019

06 марта '18 в 18:01 2018-03-06 18:01 Cavab Ray Foss tərəfindən martın 06-də saat 18: 18-də verilir. 2018-03-06 18:01

Mən bu problemi MacOS-da bir neçə dəfə rastladım. Git həssasdır, amma Mac yalnız işi saxlayır.

Biri faylları düzəldir: Foobar.java və bir neçə gündən sonra onu Foobar.java dəyişməyə qərar verir. Ən son kodu çıxartdığınızda The following untracked working tree files would be overwritten by checkout... ilə uğursuz olur The following untracked working tree files would be overwritten by checkout...

Bu düzeltmeyi gördüyüm yeganə etibarlı yol:

  • git rm Foobar.java
  • git commit -m 'TEMP COMMIT!!' atlaya bilməyəcəyiniz bir mesaj ilə təmin edin git commit -m 'TEMP COMMIT!!'
  • Trailed
  • Bu, münaqişəni birləşdirməyə məcbur edəcək bir münaqişəyə səbəb olacaq - çünki dəyişiklik onu silib, digər dəyişikliyin adı dəyişdirildi (bu səbəbdən).
    • "Silmək" olan dəyişikliyinizi qəbul edin
    • git rebase --continue
  • İndi git rebase -i HEAD~2TEMP COMMIT!! drop git rebase -i HEAD~2 drop TEMP COMMIT!!
  • Faylın Foobar.java adını Foobar.java
3
05 авг. Ashwin Jayaprakash tərəfindən verilmiş cavab 05 Av 2016-08-05 20:23 '16 saat 20:23 'də 2016-08-05 20:23

Bir çox faylın adını dəyişdikdə və bəziləri yalnız işi əvəz edir, bunun nə olduğunu xatırlamaq çətindir. əl ilə "keçmək köçürmə", fayl olduqca faydalı ola bilər. Beləliklə, fayl adını dəyişdirmə prosesində nə edərdim, aşağıdakı adımları baxın:

  • başqa bir qovluğa / depoya keçmədən bütün faylları və qovluqları silin.
  • Mövcud boş git qovluğunu düzəldin (bu, bütün fayllar silinmiş kimi göstərilir).
  • Bütün faylları git / depo mənbəyi qovluğuna əlavə edin.
  • mövcud qeyri-boş git qovluqunu düzəlt.

Bu, hansı faylları və ya qovluqların adını dəyişdiyini müəyyən etmək üçün cəhd etmədən bütün problemləri aradan qaldıracaq.

2
29 апр. Ricardo Virtudazo Jr tərəfindən verilmiş cavabı Apr 29 2017-04-29 14:00 '17 'də saat 14.00 ' də 2017-04-29 'da saat 14.00' də

tags ilə bağlı digər suallar və ya bir sual