默认情况下为“ git update-index --assume-unchanged”

Hei*_*tro 5 git config ignore web-config

git中是否有一种方法可以在git update-index --assume-unchanged FILE_NAME给定的文件集上默认获得结果?例如,一个git config文件列出了默认情况下不会跟踪其更改的文件,这样在克隆存储库后就不必运行命令了吗?这些文件将以默认格式存在于存储库中,由开发人员提取,并且他们对文件所做的任何更改都不会被跟踪或跟踪提取。

例如:我有一个带占位符的web.config文件,该占位符用于项目使用的连接字符串。理想情况下,开发人员将克隆存储库,并用指向其本地资源的连接字符串替换这些占位符。无需运行任何命令。这样,这些更改将保留在后拉中,除非在仓库中更改了web.config文件的格式,并且它们的本地更改不会被推送到仓库中。

使用配置文件可以在git中实现吗?还是我总是必须为“假设文件集不变”运行命令?

Von*_*onC 3

assume-unchanged更好的方法(比尝试使用或调整索引skip-worktree)是根本跟踪这些文件,而是生成它们(并确保它们位于 .gitignore 中,不会被跟踪和忽略)

这样,您就可以在本地随意修改它们,而根本不需要管理它们的 Git 索引状态(因为它们不被跟踪)

为此,您需要版本和跟踪:

  • a file.tpl(带有占位符值的模板文件)。
  • 能够获取模板文件并生成实际文件的脚本(该文件保持未跟踪,私有)
  • a.gitignore忽略生成的文件
  • a.gitattribute声明smudge内容过滤器(见下文)

文件的生成是通过内容过滤器驱动程序使用.gitattributes声明自动生成的。

https://i.stack.imgur.com/tumAc.png
(图片来自《Pro Git book 》中的《自定义 Git - Git 属性》))

一旦您在本地配置中声明该内容文件管理器驱动程序,它将自动git checkout为您生成(未跟踪的)文件。请参阅“最佳实践 - Git + 构建自动化 - 保持配置独立
” 中的完整示例。


归档时间:

查看次数:

581 次

最近记录:

8 年,5 月 前