我有一个python程序的配置文件,用户必须插入一个API密钥。
我正在使用Git跟踪该文件,我将该文件仅作为模板表单提交。
我需要使用我的私有API密钥自己使用该文件,所以如何告诉Git模板版本是" final"版本并且不跟踪任何进一步的变化?
答案 0 :(得分:2)
您可以将文件标记为" skip-worktree",从那一刻起,对diff和commit的更改将被忽略:
git update-index --skip-worktree filename
当合并或拉动影响文件时,您将收到错误并且必须重置标志(这样做是为了防止错误)。
请参阅https://www.kernel.org/pub/software/scm/git/docs/git-update-index.html
答案 1 :(得分:0)
我需要使用我的私有API密钥自己使用该文件,所以如何告诉Git模板版本是" final"版本并且不跟踪任何进一步的变化?
将文件添加到您的存储库后,将其添加到.gitignore
将无效,因为它已由git跟踪。
您需要使用assume-unchanged
标志
https://git-scm.com/docs/git-update-index
git update-index --assume-unchanged <path>
如果您需要打印标有--assume-unchanged
标志的文件列表:
git ls-files -v|grep '^h'
指定此标志时,不会更新为路径记录的对象名称。
相反,此选项设置/取消设置&#34;假设未更改&#34;路径的位。
当&#34;假设不变&#34;如果位为on,则用户承诺不更改文件并允许Git假定工作树文件与索引中记录的文件匹配。如果要更改工作树文件,则需要取消设置该位以告知Git。当在具有非常慢的lstat(2)系统调用(例如cifs)的文件系统上处理大项目时,这有时很有用。
如果需要在索引中修改此文件,Git将失败(优雅地),例如合并时提交;因此,如果上游更改了假定未跟踪文件,则需要手动处理该情况。