我有一个使用 Git 的项目,我从 master 分支重命名目录。
分支中的重命名按预期工作。当我切换回主分支时,该目录具有其原始名称,但还有一个空目录树,其名称是我在分支中更改为的名称。
这是预期的行为吗?我错过了一步吗?
我只需要在它们出现时删除这些空目录树吗?
我知道 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
当我切换回master时问题出现了:
/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 不会跟踪它——但是在那里很难看。