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