For my day job I work on a PC laptop (at home I've been using a Mac laptop) and for my work projects I've started using GitHub for Windows. Mostly because I don't have to upload a new public key every time I create a new VM (or copy the private key and public key to the VM) but it also make common tasks easy and there is a spell check. The one downside is that my VMs are all Linux and the execute permissions I set in Linux don't carry through to the git permissions and cause problems when I add an executable or script and then assume that the server will get the correct permissions.

The solution to this is to use git update-index.

git update-index --chmod=+x path/to/the/file