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

时间:2017-05-23 20:50:06

标签: git

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

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

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

2 个答案:

答案 0 :(得分:4)

  

更新

此案例的最佳方式是skip-worktree

skip-worktree,根据this answer,即使git知道文件已被修改(或需要通过重置 - 硬件等修改),它也会假装它没有被使用,而是来自索引的版本。这种情况一直持续到索引被丢弃为止。

另一个选项assume-unchanged是针对检查一组文件是否已被修改的情况而设计的

git update-index --assume-unchanged FILE_NAME

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

git update-index --no-assume-unchanged FILE_NAME

答案 1 :(得分:2)

您想使用https://stackoverflow.com/a/13631525/717372

中描述的skip-worktree功能(而不是assume-unchanged