Just make the repository on the server side bare and you won't have to worry about checked out branches or renaming ".git" directory.
This is the usecase mentioned in the article and it wouldn't work with a bare repo. But if the server your SSH'ing to is just a central point to sync code across machines, then you're right: multiple hoops mentioned in the article are solved by having the central repo bare.