我想知道是否有一种方法可以将文件包含在存储库中,但在用户克隆存储库后自动忽略该文件...这对于配置文件来说非常好:一旦你克隆了存储库,你只需要编辑它(而不必记得将其放入.gitignore文件中)。
有一种方法是运行以下命令:git update-index --assume-unchanged filename.txt
另一种方法是提交文件的模板版本,进行克隆后,复制模板并将复制的文件添加到.gitignore中。
不幸的是,这两种方法都需要在克隆后执行某些操作。
.gitignore
文件中这将忽略该文件及其所做的任何更改。
--assume-unchaged
对此文件使用 --assume-unchaged
标志,以停止跟踪该文件上的更改。
--[no-]assume-unchanged
指定此标志时,不会更新路径的对象名称记录。
相反,此选项为路径设置/取消设置
assume unchanged
位。当
assume unchanged
位为 on 时,用户承诺不更改文件,并允许 Git 假设工作树文件与索引中记录的内容匹配。如果要更改工作树文件,则需要取消设置位以告知 Git。在使用具有非常慢的 lstat(2) 系统调用(例如 cifs)的文件系统上处理大型项目时,这有时是有帮助的。如果 Git 需要修改索引中的此文件(例如合并提交时),Git 将失败(优雅),因此,在上游更改了假定未跟踪的文件的情况下,您需要手动处理该情况。
bootstrap.sh
),用于生成配置文件,并将生成的文件添加到.gitignore
中。 - MBlanc