More robust file adding
More robust commit creation
Use correct branch name in needs_pushing
Also dump error output when debugging
needs_pushing can handle non-existing tracking branches and local updates
More precise feature spec