Bagaimana cara membuat perubahan pada nama file, hanya case-sensitive di Git?

Saya mengubah nama beberapa file dengan memisahkan huruf pertama, seperti pada Name.jpg , menjadi Name.jpg . Git tidak mengenali perubahan ini, dan saya harus menghapus file dan mengunggahnya lagi. Apakah ada cara agar git peka terhadap huruf besar-kecil saat memeriksa perubahan nama file? Saya belum membuat perubahan pada file itu sendiri.

930
16 июля '13 в 20:41 2013-07-16 20:41 Gil Shulman bertanya pada 16 Juli '13 pada 20:41 2013-07-16 20:41
@ 11 jawaban

Anda dapat menggunakan git mv :

 git mv -f OldFileNameCase newfilenamecase 
1144
03 янв. Dijawab oleh Keith Smiley pada 03 Jan 2014-01-03 18:57 '14 pada 18:57 2014-01-03 18:57

Git memiliki parameter konfigurasi yang memberitahukannya apakah itu case sensitive atau tidak sensitif: core.ignorecase . Untuk memberi tahu Git nilai case-senstive, cukup setel parameter ini ke false :

 git config core.ignorecase false 

Dokumentasi

Dari dokumentasi git config :

border=0

core.ignorecase

Jika benar, opsi ini memungkinkan Anda untuk menggunakan berbagai solusi agar Git bekerja lebih baik pada sistem file yang tidak peka terhadap huruf besar-kecil, seperti FAT. Sebagai contoh, jika daftar direktori mendeteksi sebuah makefile , ketika Git mengharapkan makefile , Git akan menganggap bahwa itu memang file yang sama dan terus mengingatnya sebagai makefile .

Nilai defaultnya salah, kecuali untuk git-clone (1) atau git -init (1) akan memeriksa dan menetapkan core.ignorecase true jika perlu saat membuat repositori.

Sistem file case-insensitive

Dua sistem operasi paling populer yang tidak memiliki sistem file case-insensitive yang saya tahu adalah

  • untuk windows
  • OS X
754
17 июля '13 в 1:52 2013-07-17 01:52 jawabannya diberikan oleh user456814 17 Juli '13 pada 1:52 2013-07-17 01:52

Inilah yang saya lakukan pada OS X:

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

Dua >--cached atau semacamnya.

93
13 нояб. Balas diberikan oleh Sijmen Mulder 13 Nov 2013-11-13 17:27 '13 pada 17:27 2013-11-13 17:27

Menggunakan SourceTree, saya bisa melakukan semua ini dari antarmuka pengguna.

  • Ganti nama FILE.ext ke whatever.ext
  • Panggung
  • Sekarang ganti nama whatever.ext ke FILE.ext
  • U>

Agak membosankan, tetapi jika Anda hanya perlu membuatnya beberapa file, ini cukup cepat.

87
28 окт. balasan yang diberikan oleh Chris Barr 28 Okt 2016-10-28 17:40 '16 jam 5:40 sore 2016-10-28 17:40

Di OSX, Anda dapat menggunakan Disk Utility untuk membuat image hard disk / disk image untuk menghindari masalah ini dan menghindari masalah lain dengan pengembangan dalam sistem file tanpa peka huruf besar-kecil.

Jalankan utilitas disk, buat disk image baru dan gunakan pengaturan berikut (atau ubah sesuai keinginan Anda, tetapi simpan case-sensitive):

2019

37
03 окт. jawabannya diberikan oleh user1821510 03 Oktober. 2014-10-03 22:18 '14 pukul 10:18 2014-10-03 22:18

Terkadang sangat membantu untuk mengubah sementara sensitivitas huruf dalam Git. Dua metode yang mungkin:

Metode 1:

git -c core.ignorecase=true checkout mybranch untuk menonaktifkan sensitivitas case untuk satu perintah checkout . Atau lebih umum: git -c core.ignorecase= <<true or false>> <<command>> . (Terima kasih kepada VonC untuk menyarankan ini di komentar.)

Metode 2:

Untuk mengubah pengaturan untuk periode yang lebih lama (misalnya, jika Anda perlu menjalankan beberapa perintah sebelum mengubahnya lagi):

  1. git config core.ignorecase (mengembalikan pengaturan saat ini, misalnya, false ).
  2. git config core.ignorecase <<true or false>> - setel parameter baru yang diinginkan.
  3. ... Jalankan beberapa perintah lain ...
  4. git config core.ignorecase <<false or true>> - kembalikan nilai konfigurasi ke nilai sebelumnya.
15
10 июля '18 в 14:05 2018-07-10 14:05 membalas Steve Chambers 10 Juli '18 pukul 14:05 2018-07-10 14:05

1) Ubah nama file name1.jpg menjadi name1.jpg

2) memperbaiki file Name.jpg dihapus

3) ganti nama file name1.jpg menjadi Name.jpg

4) tambahkan file Name.jpg ditambahkan ke komit sebelumnya

 git add git commit --amend 
14
03 окт. balas diberikan razon 03 oktober. 2016-10-03 22:13 '16 jam 10:13 malam 2016-10-03 22:13

Saya mencoba solusi berikut dari jawaban lain, dan mereka tidak berhasil:

Jika repositori Anda dihosting di GitHub, seperti punyaku, Anda dapat mengganti nama file di sumber (GitHub.com) dan memaksa mengubah nama file dari atas ke bawah.

Petunjuk di bawah ini bergantung pada jenis file yang Anda coba rename, yaitu, jenis file yang GitHub anggap dapat diedit (kode, teks, dll.) Atau tidak dapat diedit (gambar, biner, dll.) Dalam browser .

  1. Kunjungi GitHub.com
  2. Buka repositori Anda di GitHub.com dan pilih cabang tempat Anda bekerja
  3. Dengan menggunakan alat navigasi file situs, navigasikan ke file yang akan Anda ganti namanya.
  4. GitHub memungkinkan Anda mengedit file di browser?
    • a.) dapat diedit
      1. Klik ikon "Edit file ini" (sepertinya pensil)
      2. Ubah nama file dalam entri nama file teks
    • b) tidak dapat diedit
      1. Buka tombol "Unduh" di tab baru dan simpan file ke komputer Anda.
      2. Ganti nama file yang diunduh
      3. Pada tab sebelumnya di GitHub.com, klik ikon "Hapus file ini" (sepertinya tempat sampah)
      4. Pastikan bahwa tombol radio "Tulis >branchname cabang" dipilih dan klik tombol "Komit Perubahan".
      5. Dalam direktori yang sama di GitHub.com, klik "Unggah File"
      6. Unduh file yang diubah namanya dari komputer Anda
  5. Pastikan bahwa tombol radio "Tulis >branchname cabang" dipilih dan klik tombol "Komit Perubahan".
  6. Secara lokal, terbitkan / terima / tarik cabang
  7. Sudah selesai
8
31 окт. jawabannya diberikan oleh gmeben pada 31 Oktober 2017-10-31 21:22 '17 pada 21:22 2017-10-31 21:22

Mac OSX High Sierra 10.13 memperbaikinya. Cukup buat partisi APFS virtual untuk proyek git Anda, secara default tidak memiliki batas ukuran dan tidak memakan ruang.

  1. Di Utilitas Disk, klik tombol + ketika Disk Kontainer dipilih.
  2. Pilih APFS (-s wajib) dalam format
  3. Sebut saja Sensitive
  4. keuntungan
  5. Opsional: Buat folder di Sensitive dengan nama git dan ln -s/Volumes/Sensitive/git/Users/johndoe/git

Drive Anda akan berada di /Volumes/Sensitive/

2019

Saya telah mengalami masalah ini beberapa kali di MacOS. Git peka huruf besar kecil, tetapi Mac hanya menyimpan huruf besar kecil.

Seseorang memperbaiki file: Foobar.java dan setelah beberapa hari memutuskan untuk mengganti nama menjadi Foobar.java . Ketika Anda mengeluarkan kode terbaru, gagal dengan The following untracked working tree files would be overwritten by checkout...

Satu-satunya cara tepercaya yang pernah saya lihat perbaikan ini adalah:

  • git rm Foobar.java
  • Amankan dengan pesan yang tidak bisa Anda lewati git commit -m 'TEMP COMMIT!!'
  • Tertinggal
  • Ini akan menyebabkan konflik yang akan memaksa Anda untuk menggabungkan konflik - karena perubahan Anda telah menghapusnya, tetapi perubahan lainnya telah diganti namanya (karenanya masalahnya).
    • Terima perubahan Anda, yaitu "hapus"
    • git rebase --continue
  • Sekarang tinggalkan solusi Anda git rebase -i HEAD~2 dan drop TEMP COMMIT!!
  • Konfirmasikan bahwa file tersebut sekarang bernama Foobar.java
3
05 авг. Balas diberikan oleh Ashwin Jayaprakash 05 Agu 2016-08-05 20:23 '16 pada 20:23 2016-08-05 20:23

Ketika Anda telah melakukan banyak penggantian nama file, dan beberapa di antaranya hanya mengganti case, sulit untuk mengingat apa itu. secara manual "git relokasi", file tersebut bisa sangat berguna. Jadi, apa yang akan saya lakukan dalam proses mengubah nama file, ikuti >

  • hapus semua file dan folder tanpa git ke folder / repositori lain.
  • perbaiki folder git kosong saat ini (ini akan ditampilkan karena semua file dihapus.)
  • tambahkan semua file kembali ke folder sumber git / repositori.
  • perbaiki folder git yang tidak kosong saat ini.

Ini akan menghi>

2
29 апр. Balas diberikan oleh Ricardo Virtudazo Jr 29 Apr 2017-04-29 14:00 '17 jam 2 siang 2017-04-29 14:00

Pertanyaan lain tentang tag atau Ajukan Pertanyaan