處理空資料夾

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