For the general case, you extract the zip download and copy/upload the files to your hosting.
If you have modified core files it’s more complicated. I’ll say first up that you almost never need to modify core files, pretty much anything you want to change can be done with a plugin. Will get to that later.
teddydoors’ answer covers updating. One extra idea: add a comment that you can easily search, e.g. // core mod: [description]
Then put the new code in another folder, search through your old code for your mods and copy them over to the new code. Then you can copy that back to your main install.
You can also look at exactly what files have changed in each release. On GitHub go to “releases” (right column), then there is a “Compare” dropdown. So for v1.8.5 you can compare to v1.8.4 and you’ll get this page: https://github.com/q2a/question2answer/compare/v1.8.4...v1.8.5
Any files you haven’t modified you can copy straight over, the others you can look at what changed and do those changes yourself.
To answer your and Zeeshan’s specific changes. I don’t think splitting the CSS is a good strategy, because now you’re loading different files on different pages, instead of having one file that’s cached for all pages.
Changes like removing JS or the footer attribution can be done with layer plugins that override those same functions from the theme.
And you mentioned language files - those can also be customised separately too. See the last section of this page.