Fix edge case when branch is named refs/branch

There could be a branch named refs/branch and so its full name should be
refs/heads/refs/branch
Use full branch names when pushing

Otherwise there might be conflicts with tags having the same name as a branch being pushed