我已更新了我的favicon,因此必须使用新的favicon.ico
文件替换现有的favicon.ico
文件。显然,因为名字是相同的,Git并不认为任何事情都发生了变化。有没有办法强制它作为提交的一部分包含在内?
答案 0 :(得分:5)
git不仅仅依赖于文件名的更改来检测文件是否已被修改。 It uses information returned by lstat
.
如果,某种程度上,您已经更改了文件的内容而没有更改lstat
返回的内容,那么git会认为它没有改变。修复只是touch
文件(例如touch favicon.ico
)更改其lstat
数据。
如果git仍然认为文件在touch
之后没有改变,那么你实际上并没有改变文件内容,或者文件被忽略(例如.gitignore
),或者你被告知git以其他方式忽略对文件的更改(例如git update-index --assume-unchanged
)。
答案 1 :(得分:0)
即使名称不会改变,Git也应该明确注意到这些文件的变化。如果您只是更改linux下的文件权限,Git甚至会注意到。这就是为什么在递归使用时应该注意chmod
和chown
。但是,使用--assume-unchanged
选项时可能会发生这种情况。但是,这可以针对某个文件停止。
git update-index --no-assume-unchanged path/to/file