У меня есть проект с использованием Git, где я разветвил мастер, чтобы переименовать каталог.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 не будет отслеживать его, но это некрасиво.
FWIW, я не получаю такого поведения с 1.6.3.1: new_dir исчез после окончательной проверки мастера. Какую версию вы используете? –
Я использую msysgit 1.6.4 – jmohr
Есть ли скрытые неиспользуемые. * Файлы в new_dir? –