在Git中,如何提交文件一次,但忽略对文件的进一步更改

San*_*war 6 git

我有一个日志文件errors.log,软件用来报告错误.该软件本身不会创建errors.log,因此该文件必须事先存在.

问题是,如果我添加它,.gitignore那么开发人员需要在他们的机器上手动创建它.如果我不忽略它,那么每个开发人员都会errors.log在测试后提交他们自己的内容......在合并时证明了一个很大的麻烦.

如何使新开发人员errors.log在最初克隆它时获取空白副本,但是在使用时不会将其添加到工作树(无论更改)git add -A

Dam*_*ero 7

更新

这种情况的最好方法是 skip-worktree

跳过工作树,根据这个答案,即使 git 知道文件已被修改(或需要通过 reset --hard 等修改),它也会假装它没有被修改,而是使用索引中的版本。这一直持续到索引被丢弃。

另一种选择,assume-unchanged专为检查一组文件是否已被修改而成本高昂的情况而设计

git update-index --assume-unchanged FILE_NAME
Run Code Online (Sandbox Code Playgroud)

如果您想再次跟踪更改,请使用以下命令:

git update-index --no-assume-unchanged FILE_NAME
Run Code Online (Sandbox Code Playgroud)