:returns:
            Current repository status as dictionary:

        * 'clean': ``True`` if there are no changes ``False`` otherwise
        * 'untracked': A list of untracked files (if any and not 'clean')
        * 'modified': A list of modified files (if any and not 'clean')
        * 'deleted': A list of deleted files (if any and not 'clean')
        * 'conflicting': A list of conflicting files (if any and not 'clean')

def status(self):
        '''
        :returns:
            Current repository status as dictionary:

        * 'clean': ``True`` if there are no changes ``False`` otherwise
        * 'untracked': A list of untracked files (if any and not 'clean')
        * 'modified': A list of modified files (if any and not 'clean')
        * 'deleted': A list of deleted files (if any and not 'clean')
        * 'conflicting': A list of conflicting files (if any and not 'clean')
        '''

        status = self.m(
            'getting git status',
            cmdd=dict(cmd='git status --porcelain', cwd=self.local),
            verbose=False
        ).get('stdout')

        o, m, f, g = list(), list(), list(), list()
        if status:
            for w in status:
                s, t = w[:2], w[3:]
                if '?' in s:
                    o.append(t)
                if 'M' in s:
                    m.append(t)
                if 'D' in s:
                    f.append(t)
                if 'U' in s:
                    g.append(t)
        clean = False if o + m + f + g else True
        return dict(
            untracked=o, modified=m,
            deleted=f, conflicting=g, clean=clean)