.gitattributes涂抹和清理过滤器作为存储库的一部分

时间:2014-09-30 16:22:44

标签: git gitattributes

我的git存储库中有许多模板文件,它们以不同的速率变化。然后将它们用于生成HTML页面。如果有人报告问题,我希望他们能够告诉我哪个版本的模板文件存在问题。目前,我在更改文件时手动输入日期。或者,我试着。我大部分时间都忘记了。

至少在理论上,我应该能够使用git smudge和clean过滤器来修复文件并自动插入上次更新的日期。这会很棒。

除了我在一台机器上开发,当我准备好时,我推/拉到另一台机器。

如何在另一台机器上显示污迹和清洁过滤器?我不想在路径中添加奇怪的脚本;这只是这个存储库所需要的,所以我想让它完全自包含。在线的一切都说“将此过滤器定义添加到〜/ .gitconfig,然后将这些脚本添加到您的路径,然后设置存储库.gitattributes文件”。我想要它,这样如果我去一台新计算机并克隆存储库,所有的清理和涂抹都会自动配置。

有没有人这样做过?

2 个答案:

答案 0 :(得分:3)

正如git clone中所述,您可以设置一个template directory来声明这些配置 即模板文件夹将具有最小.gitconfig与那些涂抹/清除指令:

filter.manage_date.smudge ${GIT_TEMPLATE_DIR}/smudge-script
filter.manage_date.clean ${GIT_TEMPLATE_DIR}/clean-script

只需设置(导出)引用该模板文件夹的GIT_TEMPLATE_DIR环境变量。

通过使用以${GIT_TEMPLATE_DIR}开头的绝对路径,您不需要将这些脚本添加到$PATH。并且该脚本路径可能因机器而异:每个机器都可以有自己的${GIT_TEMPLATE_DIR}路径。

最后,.gitattributes是您的回购的一部分,所以无处可做。

通过该设置,您可以“转到新计算机并克隆存储库,所有清洁和污迹都会自动配置。”#34;
(假设新计算机预先填充了其模板目录)

答案 1 :(得分:0)

指定在克隆时执行所需操作的模板,或提供repo-setup脚本并在克隆后键入sh repo-setup,或将必要的命令放在自述文件的段落中并说出{{1}或者你的编辑器通过shell管理命令,或使用V}!sh进行分发而不是git archive,因为它支持任意关键字替换。将裸git push转换为代码注入向量似乎是一个不好的代价,以避免像这样的微不足道的不便。