我的git存储库中有许多模板文件,它们以不同的速率变化。然后将它们用于生成HTML页面。如果有人报告问题,我希望他们能够告诉我哪个版本的模板文件存在问题。目前,我在更改文件时手动输入日期。或者,我试着。我大部分时间都忘记了。
至少在理论上,我应该能够使用git smudge和clean过滤器来修复文件并自动插入上次更新的日期。这会很棒。
除了我在一台机器上开发,当我准备好时,我推/拉到另一台机器。
如何在另一台机器上显示污迹和清洁过滤器?我不想在路径中添加奇怪的脚本;这只是这个存储库所需要的,所以我想让它完全自包含。在线的一切都说“将此过滤器定义添加到〜/ .gitconfig,然后将这些脚本添加到您的路径,然后设置存储库.gitattributes文件”。我想要它,这样如果我去一台新计算机并克隆存储库,所有的清理和涂抹都会自动配置。
有没有人这样做过?
答案 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
转换为代码注入向量似乎是一个不好的代价,以避免像这样的微不足道的不便。