Associating plugin versions with Discourse versions

Technically, yes, it is just the syntax you use to clone a branch versus a tag are the same.

Correct. It doesn’t have to be numbers at all. You could tie it to Discourse version numbers if you wanted as well (I have yet to do that – though I feel it would be one day a smart thing to do).