To address some of the questions in the follow-up edit(s), since the GPL redistribution aspects are well covered by other answers.
For instance, what if Microsoft does something illegal
If someone is going to break the law and steal your code, then they are going to break the law and steal your code. It makes absolutely no difference whether the code is hosted on Github or any other site. Even if the code is only available on your personal website, somebody could download it from there and use it in violation of the open source license, for example by incorporating it into a closed-source project.
Licenses are not magic spells; they don't prevent somebody from using the code in an unlawful way. What they do is give you the ability to take that person to court if they violate your rights (assuming you find out about it).
like assign the copyright of my work to itself, or give itself rights that are not addressed by the GPL?
Microsoft cannot "assign" copyright of your work, nor can Microsoft "give itself rights" to your code, because it is not their copyright to assign in the first place. Only you as the copyright owner can legally assign your copyright to somebody else, and only you can choose to grant rights to other people through the choice of an open-source license.
If Microsoft were to claim rights to your code which you hadn't granted (either individually to Microsoft, or generally to everybody via the GPL) then they would be making a false claim and possibly breaking the law, at which point they could be sued or prosecuted depending on exactly what they did and which legal jurisdiction they did it in.
The act of uploading could be used by their corporate lawyers to claim that they can automatically abscond with my copyright.
No they could not, because even if Github had a clause requiring copyright assignment (which it doesn't), the person who uploaded your code to Github was not the copyright owner (you), and therefore had no authority to assign copyright to Microsoft. Unless Microsoft's corporate lawyers are shockingly incompetent, they are not going to make such a clearly false claim.
All Microsoft has to do is change their fine print for 1 day and they can claim that my code is theirs.
It doesn't work like that. Changing the terms on their website doesn't magically seize ownership of all code that is currently hosted on that site. If Microsoft did wish to change the terms of Github to require copyright assignment (which I'm 100% sure they will never do, because nobody would use it on these terms and the site would be dead in a heartbeat), the change would only apply to code that was uploaded after the new terms were put into effect, and would require explicit agreement by the copyright holder at the point where they uploaded the code. This would mean that Microsoft would probably need to delete all existing projects (including yours) that did not agree to copyright re-assignment.
Regardless of how you may personally feel about Microsoft, your concerns are unwarranted. Your code does not become vulnerable to some kind of "copyright seizure" simply by being on Github, because there is no such concept.
The only rights Microsoft have to your code is the rights you have chosen to grant via releasing the code as GPL. If you did not want them to have those rights, you shouldn't have released it as GPL in the first place.