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

2024-03-29

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

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

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

如何让污迹和清洁过滤器显示在另一台机器上?我不想向路径添加奇怪的脚本;这仅是这一个存储库所需要的,所以我想让它完全独立。网上的所有内容都说“将此过滤器定义添加到您的 ~/.gitconfig,然后将这些脚本添加到您的路径,然后设置存储库 .gitattributes 文件”。我希望这样,如果我转到一台新计算机并克隆存储库,所有干净和污迹都会自动配置。

有人这样做过吗?


正如中提到的git clone https://git-scm.com/docs/git-clone,您可以设置一个模板目录 https://git-scm.com/docs/git-init#_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} path.

最后,.gitattributes是您的存储库的一部分,因此无需执行任何操作。

通过该设置,您可以“转到新计算机并克隆存储库,所有干净和污迹都会自动配置。”
(前提是新计算机已预先填充其模板目录)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • 子 git 存储库作为主存储库的子集

    我正在寻找一种方法来设置 git 存储库 其中包括来自较大存储库的文件子集 并从该主存储库继承历史记录 我的主要动机是能够通过 GitHub 共享代码子集 我目前通过单个 git 存储库管理我的研究相关 主要是 Matlab 代码 代码本身
  • 我可以将 Azure Dev Ops 构建定义同时用于发布管理管道和拉取请求,但后者不会触发管道吗

    简而言之 我们希望使用构建定义来生成用于发布管理的工件并检查拉取请求 但不允许后者触发新版本 我们在 Git Repo 上有 CI 构建定义 将工件输入到发布管理管道中 与许多团队一样 我们也设置了 Pull 请求来保护我们的 git ma
  • 将更改恢复到特定提交

    我为自己创建了一个新分支 现在我需要一次将多个提交从主分支恢复到特定提交 我知道有一个安全的命令可以使用git revert no commit COMMIT TO REVERT FROM COMMIT TO REVERT TO 这给了我e
  • 全局 git 配置数据存储在哪里?

    使用时git config global要进行设置 它将写入哪个文件 Example git config global core editor blah 我在这些地方找不到它 C Program Files Git etc gitconf
  • 如何为新的 eclipse (neon) java 项目初始化 git

    我安装了 eclipse Neon 的新副本 并在一个新的闪亮工作区中创建了一个新的 gradle java 项目 将 git 添加到聚会中的最佳实践是什么 我读到在项目目录中初始化 git 是真是个坏主意 https stackoverf
  • 克隆包含所有子模块的 git 存储库

    我有一个工作 git 存储库 其中包含几个子模块 通过克隆不同的存储库获得 现在 我想要复制整个存储库 包含所有子模块 通过使用推送或克隆到另一台机器上的裸 git 存储库 我很高兴失去子模块的历史记录 我只是对保留它们的内容感兴趣 这可能
  • Git 子模块在 Windows 上更新缓慢

    Git 子模块在 Windows 上似乎非常慢 为了测试性能 我创建了 3 个裸存储库并向它们提交了 3 条独立消息 未存储文件 然后 我将每个裸存储库作为子模块添加到新的 git 存储库中 并执行子模块更新 花费了 5 秒多的时间 当使用
  • Git ref master 现在为空,如何恢复?

    我不完全确定发生了什么 但由于某种原因 我的 git 存储库的主引用文件现在是空的 我们在 Dropbox 上托管存储库 所以也许与此有关 但现在我无法从中提取 它是这么说的 Your configuration specifies to
  • Git 拉回 master 中的提交?

    一位同事 我们称之为亚伦 被指派翻新网站的一部分作为长期项目 他创建了一个新的 Git 分支 名为aaron 他所有的改变都是在这个分支上进行的 当他工作时 我继续维护整个网站 将我的更改提交给master 最终 Aaron 将他的分支合并
  • GIT 中的重复合并。它如何计算差异?

    我一直在做一项研究 试图了解 GIT 合并是如何工作的 我知道有几种合并类型 如递归 章鱼等 我发现解析 递归是最常用的 并且递归合并仅在存在多个共同祖先 基础时才有用 但是 我找不到从分支重复合并到主节点时使用哪种算法 或者如何计算祖先
  • 从分离的头进行 Git 推送

    我以超然的态度做出了一些改变 我想用 Git 将这些更改推送到这个独立的头 我不希望我的更改进入开发分支 当然也不想进入主分支 我正在与另一个人一起处理一个文件 分支示例 develop master HEAD detached at or
  • git-svn --忽略路径

    我现在在 git svn 的 ignore paths 选项上挣扎了几个小时 试图从大型存储库中仅获取某些标签 我想在 dev 处开始获取 看起来像 gt svn ls http 192 168 0 2 svn repo corporati
  • 如何像对待普通目录一样对待嵌套存储库(子模块)?

    我的 WordPress 网站是使用 Git 进行版本控制的 包括wp content plugins 文件夹 现在有一个插件 wp editormd 带有自己的 Git 存储库 wp content plugins wp editormd
  • 是否存在比 SVN 更快的集中版本控制?

    我已经使用 SVN 很长时间了 现在我们正在尝试使用 Git 我在这里谈论的不是中心化 去中心化的争论 我唯一关心的是速度 后一个工具要快得多 但有时 我需要使用一种集中式方法 这种方法比分散式方法更简单 更简单 学习曲线非常快 这节省了大
  • 如何查看上次提交和现在之间发生了什么变化(进行一些更改后)

    与此类似question https stackoverflow com questions 1552340 how to list the file names only that changed between two commits但
  • 具有单独 work_tree 的 Git 子模块

    我按照本页上的教程使通过 Git 部署我的网站变得简单 http toroid org ams git website howto http toroid org ams git website howto 到目前为止一切都很好 但是我最近
  • 如何使用 .gitattributes 避免在 git root 中包含文件夹,但在 zip 的 dist 文件夹中包含同名文件夹

    我有一个名为lib在存储库的根目录和另一个名为lib在 dist 文件夹中 我正在尝试使用 gitattributes文件排除除 dist 之外的所有文件夹和文件 以便任何下载为 zip 或 tarball 的人都只会 git 分发文件 我
  • git 可以与 Xcode 集成吗?

    有没有办法将 git 存储库与 Xcode 内置的 SCM 功能一起使用 Xcode 4 原生支持 git WWDC 2010 上的开发者工具国情咨文演讲 在这里了解更多 Xcode 4 中的新增功能 http developer appl
  • 相当于“svn update -r”的 git 是什么?

    我是最近的 git 转换者 能够使用 git svn 将我的分支保留在本地而不干扰 svn 服务器真是太棒了 最新版本的代码中存在一个错误 我想确定一个它起作用的时间 以便我可以使用 git bisect 我找不到正确的命令来及时返回 谢谢
  • 无法使用 git 配置文件进行 ssh

    我知道它被问了很多次 但我无法得到我的问题的答案 我正在尝试使用配置文件 ssh 到系统 配置文件是 Host qa HostName 10 218 70 345 User user IdentityFile C Users bean ss

随机推荐