As per my knowledge, Git uses its BLOB objects to store the content of a file in binary format. So where does it store the file format? Is it stored in the tree object? Suppose I have 2 files, file1.docx and file2.png and I have committed these files. So git will have the binary content of file1.docx in a blob object and similarly another blob object will contain the content of file2.png. But where would the file format of these two files will be stored because when I take the pull of repository, now file system would require the file format.
Also if the file is text file, would it also store its character-encoding somewhere?
git diff
strongly prefers files that consist of lines (asgit diff
is pretty useless with things that aren't lines), but that just means that non-line-based files don't diff properly. If some file system requires "file formats", that file system is not suitable for use with Git, because Git does not store such a thing.