Agar Git mencatat perubahan nama file yang hanya mengubah kapitalisasi huruf—seperti readme.md menjadi README.md—jalankan git mv dari repositori di Terminal, lalu periksa perubahan yang sudah di-stage dengan git status. Di banyak Mac, format APFS default mempertahankan huruf besar/kecil pada nama file tetapi tidak membedakan nama berdasarkan huruf besar/kecil (case-insensitive), sehingga pengubahan nama melalui Finder atau mv biasa dapat membuat Git tidak dapat mengenali perbedaannya. Apple mencatat bahwa APFS juga dapat diformat sebagai peka huruf besar/kecil (case-sensitive), jadi perilakunya bergantung pada volume tersebut. Apple Developer: Files and directories

Mengubah nama file yang dilacak dengan git mv

Di Terminal, masuk ke repositori yang memuat file tersebut. Ganti contoh path di bawah ini dengan path saat ini dan path tujuan yang tepat. Memberi tanda kutip pada setiap path adalah praktik yang baik jika nama mengandung spasi atau metakarakter shell.

git mv 'src/readme.md' 'src/README.md'
git status

Perintah git mv milik Git mengubah nama path working-tree dan memperbarui indeks; perubahannya sudah di-stage, tetapi masih memerlukan commit. Manual Git mewajibkan path sumber harus ada dan menjelaskan bahwa pembaruan indeks terjadi setelah pemindahan berhasil. Alur kerja command-line yang didokumentasikan GitHub juga menyarankan untuk memeriksa git status setelah git mv. Dokumentasi git-mv GitHub Docs: Renaming a file

Jika berhasil, periksa output status untuk melihat pengubahan nama yang di-stage dari path lama ke path baru. Tinjau seluruh perubahan yang di-stage sebelum melakukan commit, terutama jika Anda juga mengedit file tersebut:

git diff --cached --summary
git diff --cached -- 'src/README.md'

Ringkasan ini membantu memastikan perubahan path; perintah kedua memungkinkan Anda memeriksa konten yang di-stage untuk path tersebut. Git mungkin menampilkan pengubahan nama sebagai penghapusan dan penambahan dalam beberapa konteks karena representasi pengubahan nama disimpulkan dari konten file dan riwayatnya. Pemeriksaan penting di sini adalah memastikan indeks memuat path yang diinginkan dan tidak ada perubahan bertahap yang tidak disengaja.

Jika pengubahan nama langsung yang hanya beda huruf besar/kecil gagal

Beberapa volume case-insensitive atau konfigurasi Git tidak menerima pemindahan langsung yang sumber dan tujuannya hanya berbeda dalam kapitalisasi huruf. Gunakan nama sementara dengan ejaan yang berbeda, lalu pindahkan path sementara tersebut ke nama akhir:

git mv 'src/readme.md' 'src/readme-case-tmp.md'
git mv 'src/readme-case-tmp.md' 'src/README.md'
git status

Path sementara tidak boleh sudah ada sebelumnya. Setelah kedua perintah tersebut, pastikan status hanya menampilkan pengubahan nama lama ke baru yang dimaksudkan dan periksa diff yang di-stage. Metode dua langkah ini memberikan nama perantara bagi sistem file untuk dibedakan, sementara git mv memperbarui indeks Git pada setiap langkah yang berhasil. Jika salah satu perintah melaporkan error, berhenti dan periksa git status serta direktori sebelum mencoba lagi; jangan menambahkan -f kecuali Anda telah memastikan bahwa menimpa tujuan memang disengaja.

Memeriksa penanganan huruf besar/kecil di repositori

Pengaturan core.ignoreCase pada Git mengaktifkan solusi untuk sistem file yang tidak membedakan huruf besar/kecil. Dokumentasi Git menyatakan bahwa clone dan init memeriksa sistem file dan menyetel nilai ini jika sesuai; dokumentasi tersebut juga memperingatkan bahwa mengubahnya dapat menyebabkan perilaku yang tidak terduga. Anda dapat memeriksa pengaturan yang aktif dengan: Dokumentasi git-config

git config --get core.ignoreCase

Jika tidak ada nilai yang dicetak, perintah ini tidak menemukan pengaturan dalam konfigurasi yang aktif. Hindari menganggap git config core.ignoreCase false sebagai perbaikan: ini mengubah asumsi Git, tetapi tidak membuat volume macOS yang case-insensitive mampu menyimpan dua nama di direktori yang sama yang hanya berbeda huruf besar/kecil. Tujuan pengaturan yang didokumentasikan adalah membantu Git bekerja dengan perilaku sistem file yang sebenarnya, bukan mengubah perilaku tersebut.

Mengonfirmasi, melakukan commit, dan membagikan pengubahan nama

Sebelum melakukan commit, verifikasi ejaan akhir di git status, periksa ringkasan yang di-stage, dan pastikan perubahan yang tidak terkait tidak disertakan. Ketika pengubahan nama yang di-stage sudah benar, lakukan commit dengan pesan yang jelas:

git commit -m "Rename readme file to uppercase"

Jika Anda berniat membagikan commit tersebut, push branch menggunakan alur kerja remote dan branch repositori Anda seperti biasa. Pengubahan nama dicatat dalam commit; remote baru akan menerimanya setelah Anda melakukan push. Pada volume APFS yang case-sensitive, nama yang hanya berbeda huruf besar/kecil dapat dianggap berbeda, sedangkan konfigurasi default yang case-insensitive menganggapnya sebagai nama yang sama. Pemeriksaan lokal yang andal tetap dengan memastikan bahwa indeks dan status yang di-stage di Git menampilkan path tujuan yang diinginkan. Apple Support: Format sistem file yang tersedia di Disk Utility di Mac

Sumber