我有一个使用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不会跟踪它-但是在那里很难看。

最佳答案

是的,您可以删除它。还可以使用git clean -d删除目录。

08-27 21:52
查看更多