我在git中有一些文件(即配置文件),我需要在git repo中,但我不希望它们更新(出于某种原因,运行它们,make,更改配置文件).
那么有什么方法可以告诉git忽略对文件的任何更改,但保持原始文件仍然在repo中?目前,我发现这样做的唯一方法是将文件添加到.gitignore文件中,然后git直接将文件添加到项目中(使用-f覆盖).有没有更好的方法?
git update-index --assume-unchanged您可以在该文件上使用。
--assume-unchanged选项可以用作粗略的文件级机制来忽略跟踪文件中未提交的更改(类似于 .gitignore 对未跟踪文件所做的操作)。您应该记住,显式 git add 操作仍然会导致从工作树刷新文件。如果 Git 需要修改索引中的此文件,例如合并提交时,它会(优雅地)失败;因此,如果假定的未跟踪文件在上游发生更改,您将需要手动处理这种情况。
我根本不会用 git 管理这些文件。我会将它们放入您的.gitignoregit 中,因此 git 会忽略它们,并将模板文件(例如foo.template名为foo或的文件template/foo)放入 git 中。然后当你克隆 repo 时,你可以将它们复制出来,并修改它们,git 不会对副本做任何事情,同时仍然管理模板。如果你有几个这样的文件,你可以提供一个脚本或制定规则或类似的东西来从它们的模板中填充所有的配置文件,以便更容易地设置。
更好的设计是将项目配置与本地配置分开,或者具有可以在单独的本地文件中覆盖的项目级别默认值。项目级文件被提交,本地文件被忽略,它们都被使用。也许有些配置设置只对项目有意义,有些只对本地有意义,在这种情况下,您只需从适当的文件中提取适当的设置;或者您可以使用项目设置作为默认值,并让本地配置覆盖默认值。这样,您可以一次为所有人更新共享的项目设置,而不会干扰人们的本地设置。当然,这取决于对设置格式的控制;如果您使用的第三方工具将其设置以特定格式全部混合到一个文件中,则“
| 归档时间: |
|
| 查看次数: |
3657 次 |
| 最近记录: |