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?