Unity Git 钩子
文章目录
简介
在 Git 并不会追踪目录改变,所以在检出分支时你需要手动移除目录。
Unity 会为文件与目录生成对应的 .meta 文件。
这些钩子就是用来移除空目录的 .meta 文件来保持一致性。
使用方式
拷贝 install-hooks.sh 与 hooks 目录到 Git 仓库目录中,然后运行 install-hooks.sh。
注意
-
文件模式
hooks/post-checkout与hooks/post-merge文件并未设置为可执行文件,但在运行install-hooks.sh时会设置拷贝的文件的可执行权限。 这是由于Git for Windows默认并没有启用core.filemode,而默认文件的权限是644。 -
深度优先
当查找空目录时,我们需要使用深度优先搜索。然后我们需要删除每一个遇到的空目录,这样我们才可以移除嵌套在一起的空目录。
测试
你可以运行 hooks/testcase.sh 来建立测试目录。
然后运行 hooks/post-checkout.sh 或 hooks/post-merge 移除空目录。
GitHub
UnityGitHooks: Remove empty directories after git checkout for Unity