Гит:Переименование каталога в ветке
Вопрос
У меня есть проект, использующий Git, где я отделился от мастера, чтобы переименовать каталог.
Переименование в ветке работает как положено.Когда я возвращаюсь к основной ветке, каталог имеет свое исходное имя, но есть также пустое дерево каталогов с именем, которое я изменил в ветке.
Это ожидаемое поведение?Я пропустил шаг?
Нужно ли мне просто удалять эти пустые деревья каталогов по мере их появления?
Я знаю, что Git не отслеживает пустые каталоги, и это может иметь значение.
Мой текущий рабочий процесс:
# create and checkout a branch from master
/projects/demo (master)
$ git checkout -b rename_dir
# update paths in any affected files
# perform the rename
/projects/demo (rename_dir)
$ git mv old_dir new_dir
# add the modified files
/projects/demo (rename_dir)
$ git add -u
# commit the changes
/projects/demo (rename_dir)
$ git commit -m 'Rename old_dir to new_dir'
Я дохожу до этого момента, и все происходит так, как ожидалось:
# old_dir has been renamed new_dir
/projects/demo (rename_dir)
$ ls
new_dir
Проблема возникает, когда я возвращаюсь к мастеру:
/projects/demo (rename_dir)
$ git checkout master
# master contains old_dir as expected but it also
# includes the empty directory tree for new_dir
/projects/demo (master)
$ ls
old_dir new_dir
new_dir — это пустое дерево каталогов, поэтому git не будет его отслеживать, но это некрасиво.
Решение
Да, вы можете удалить его.Вы также можете использовать git clean -d
чтобы удалить каталог.
Другие советы
Вполне вероятно, что в новом каталоге у вас есть скрытые файлы."ls -новый каталог"