Когда мне нужно было изменить регистр файлов в git-репо, я просто использую два переименования:
git mv aNiceClass.inc aniceclass.inc_
git mv aniceclass.inc_ aniceclass.inc
Git затем с радостью записывает изменение имени:
# Changes to be committed:
#
# renamed: aNiceClass.inc -> aniceclass.inc
Попыткапрямое переименование выдает эту ошибку:
fatal: destination exists, source=aNiceClass.inc, destination=aniceclass.inc
Вот пример сценария оболочки, который будет в нижнем регистре имен любого файла ниже текущего каталога, который имеет расширение inc
или txt
:
#! /bin/bash
find -E . -regex '.*(inc|txt)$' | while read f
do
lc=$(echo ${f} | tr A-Z a-z)
git mv $f ${lc}_
git mv ${lc}_ $lc
done
Это также можно растереть в уродливой маленькой строчке:
find -E . -regex '.*(inc|txt)$' | while read f; do lc=$(echo ${f} | tr A-Z a-z); git mv $f ${lc}_; git mv ${lc}_ $lc; done