我有一个使用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在master的最终结账后已经消失。你正在使用哪个版本? – 2009-08-11 21:31:44
我正在使用msysgit 1.6.4 – jmohr 2009-08-11 21:54:12
new_dir中是否有隐藏未跟踪的*文件? – 2009-08-12 05:02:44