Проблема с переименованием каталога в git в нижний регистр при ignoreLowercase = True
Когда я печатаюgit status
, Я вижу:
# On branch master
# Changes not staged for commit:
# (use "git add ..." to update what will be committed)
# (use "git checkout -- ..." to discard changes in working directory)
#
# modified: DIR/a
#
Тем не менее, в моем рабочем каталоге я вижу, что этот файл на самом деле называетсяdir/a
(обратите внимание на строчныеdir
вместоDIR
).
Вопрос: Я хочу добавить это изменениеa
файл в область подготовки и фиксации, но я хочу, чтобы это было так, как в моем рабочем каталоге (который показываетdir/a
) -в отличие от того, как мерзавец видит это какDIR/a
, Как я могу это сделать?
Важная заметка:
К сожалению, я могут простоgit mv DIR/a dir/a
так какDIR/a
Безразлично»на самом деле существует в рабочем дереве.
В настоящее время мой.git/config
файл показываетingorecase = true
, поэтому я знаю, что я должен установить это равным false. Однако, не делая ничего, кроме изменения этого флага,git status
из этого сейчас раскрывается:
# On branch master
# Changes not staged for commit:
# (use "git add ..." to update what will be committed)
# (use "git checkout -- ..." to discard changes in working directory)
#
# modified: DIR/a
#
# Untracked files:
# (use "git add ..." to include in what will be committed)
#
# dir/
Я ожидал этого, поскольку git отслеживает только содержимое, а переключение ignorecase заставит git думать, что был добавлен новый файл. К сожалению, git теперь думает, что у меня есть два файла, которые были изменены, хотя на самом деле у меня есть только один. я хочуgit status
просто показатьdir/a
(как это в моем рабочем каталоге) вместоDIR/a
с такими же различиямиa
Я только недавно сделал.
Дополнительное примечание
Если вам интересно, как такая нестабильная ситуация возникла в первую очередь, мне удалось воспроизвести глупые ошибки, которые я допустил, когда первоначально переименовал дело моего каталога изDIR
вdir
, Если вы думаете, что это поможет найти решение этой проблемы, я был бы рад сделать редактирование, которое показало бы, как я по ошибке запутал git. (это вовлекает меня случайно ударитьmv
вместоgit mv
и не зная оignorecase
флаг и оставив его какignorecase=true
).