Ubuntu Linux: https://launchpad.net/~git-core/+archive/ppa
Windows: Full installer for official Git for Windows
Git Tutorials and Training
Basic Git commands
One "gotcha" when starting with Git is the way in which it pushes branches by default. On older versions of Git, pushing without arguments would push all branches that have the same name both locally and remotely. This can result in unexpected behaviour if you have old branches that complain when the remote branch is updated. It can even be quite dangerous if you do a force push and it reverts changes on the server. You can see the current value by running:
If this value is blank or 'matching', it is our recommendation that you reconfigure it to use 'upstream'.
git config --global push.default upstream
There has been some discussion around changing the default behaviour of Git.
Git cheat sheets and other resources