code: def run_git_shell(cls, cmd, cwd=None):
          
          p = Popen(cmd, shell=True, stdout=PIPE, cwd=cwd)
          output, _ = p.communicate()
          output = cls.decode_git_output(output)
  
          if p.returncode:
              if sys.version_info > (2, 6):
                  raise CalledProcessError(returncode=p.returncode, cmd=cmd, output=output)
              else:
                  raise CalledProcessError(returncode=p.returncode, cmd=cmd)
  
          return output
docs: Runs git shell command, reads output and decodes it into unicode string.
  
          @param cmd: Command to be executed.
          @type cmd: str
  
          @type cwd: str
          @param cwd: Working directory.
  
          @rtype: str
          @return: Output of the command.
  
          @raise CalledProcessError:  Raises exception if return code of the command is non-zero.