Files like TIFF, JPG, PNG encode pixels as collections of numbers. One popular encoding records the values of the red, green and blue (RGB) components. However, without knowing how to interpret the numbers, you will be unable to view (or process) the image. That is what colour spaces are for: RGB colour spaces have different notions of what ‘pure red’, ‘pure green’ and ‘pure blue’ (the primary colours) are; they may also differ on how the numbers encode energy (‘brightness’, ‘amount’).
Think of this as temperature. If I say, the temperature is 32, you won’t know if I’m in a cold or hot environment. If I tell you it’s in °F or °C, then you can interpret the number.
In Gimp, when you open an image, the software will check if it has an embedded profile (information to tell you how to interpret the value). If not, the standard is to assume it’s sRGB.
Then, Gimp will ask you whether to keep the profile (don’t change the numbers, and keep in mind they have to be interpreted using that profile), or convert to the built-in profile (convert the numbers, and remember to interpret them according to the built-in rules).
Later, when you assign a profile, it means keeping the numbers, and changing the interpretation. You would normally not do that. It can be useful if you work with low-level tools that don’t specify a colour space, or make experiments. ‘My thermometer reported a reading of 32; please interpret it as °C, even if you so far assumed it was K or °F.’
When you convert to a profile, it means ‘change the numbers so that they represent the same colour as they do now (as far as possible), and remember this interpretation’. So, ‘take my 32 °C, convert it into 89.6 °F, and remember that, from now on, the readings are in °F’.
(Because of the different red, green and blue primaries, some colour spaces are more limited in the colours that can be mixed from their primaries than others. sRGB is fairly limited, AdobeRGB, ProPhoto, Rec 2020 are less so. That’s why I added ‘as far as possible’ above.)
The conversions are not always as straight-forward, since some spaces encode values in a linear fashion (200, 200, 200 represents twice as much energy as 100, 100, 100), while others do not (with the standard 8-bit sRGB encoding, 124, 124, 124 would represent twice as much energy as 89, 89, 89).
So, if you just assign a profile, the interpretations can change drastically: brightness, as well as colours, can change.