'Performs a git checkout for a given branch and start point (commit)
:param branch: Remote branch name.
:param commit: Specific commit hash.'

def checkout(self, branch=None, commit=None):

    if (branch is None):
        branch = self.branch
    logging.debug('Checking    out    branch    %s', branch)
    self.git_cmd(('checkout    %s' % branch))
    if (commit is None):
        commit = self.commit
    if (commit is not None):
        logging.debug('Checking    out    commit    %s', self.commit)
        self.git_cmd(('checkout    %s' % self.commit))
    else:
        logging.debug('Specific    commit    not    specified')
    top_commit = self.get_top_commit()
    top_tag = self.get_top_tag()
    if (top_tag is None):
        top_tag_desc = 'no    tag    found'
    else:
        top_tag_desc = ('tag    %s' % top_tag)
    logging.info('git    commit    ID    is    %s    (%s)', top_commit, top_tag_desc)
