'Gets the branch that we want to push.
This may raise a ValueError if the specification is inconsistent.
This is determined lazily rather than at construction because the
option to push is not necessarily present depending on the use case.'

@property
def push_branch(self):

    if self.__options.push_master:
        if (self.__options.push_branch and (self.__options.push_branch != 'master')):
            raise ValueError('--push_origin    is    incompatible    with    --push_branch={branch}'.format(branch=self.__options.push_branch))
        return 'master'
    return self.__options.push_branch
