Fileformat differences? (.tres .res .scn .material etc.)

Can someone explain me the advantages and disadvantages of the different file formats?

So far I’m only aware of:

.res is binary format

.tres is text format that can be easily read and edited

In addition to .res and .tres some (or all?) resources have their own fileformat:

Materials: .tres .material .res

Scenes: .tscn .scn .res

Should I use the corresponding fileformat for those and why/why not?
When saving a resource the default option is set to the text format.

Scenes: tscn
Resources: tres
[Shader] materials: material

To some degree it doesn’t matter the extension, as i think there is some contextual text that says what it is. It’s more for us humans to discern.

E.g.

A resource file

[gd_resource ... ]
...

A scene file

[gd_scene ... ]
...

You can rename the file to another format but it doesn’t change its behavior. Scenes still act like scenes and resources act like resources.

(I couldn’t find a material example)

I see. I believe I somewhere read that .tres is better suited for version control, is that true?

Yeah, text based files are great for version control, as tools like git diff (and most code editors) can easily highlight the differences in a human understandable way.

Technically you can perform the same diff on binary files, but the highlighted differences would just look like a garbled line of characters with no meaning.