处理空文件夹
git 不识别文件夹的概念,它只适用于文件及其文件路径。这意味着 git 不会跟踪空文件夹。然而,SVN 确实如此。使用 git-svn 意味着,默认情况下,使用 git 执行涉及空文件夹的任何更改都不会传播到 SVN 。
发出注释时使用 --rmdir
标志可以解决此问题,如果你在本地删除其中的最后一个文件,则会删除 SVN 中的空文件夹:
git svn dcommit --rmdir
不幸的是,它不会删除现有的空文件夹 :你需要手动执行此操作。
为了避免在每次进行 dcommit 时添加标记,或者如果使用 git GUI 工具(如 SourceTree)可以安全地使用它,则可以使用以下命令将此行为设置为 default:
git config --global svn.rmdir true
这会更改 .gitconfig 文件并添加以下行:
[svn]
rmdir = true
要删除所有应保留为 SVN 的未跟踪文件和文件夹,请使用 git 命令:
git clean -fd
请注意:上一个命令将删除所有未跟踪的文件和空文件夹,甚至是 SVN 应该跟踪的文件! 如果需要生成 againg SVN 跟踪的空文件夹,请使用该命令
git svn mkdirs
在实践中,这意味着如果要从未跟踪的文件和文件夹中清除工作区,则应始终使用这两个命令重新创建 SVN 跟踪的空文件夹:
git clean -fd && git svn mkdirs