private function fetchAllCommits(GitRepository $git)
    {
        $currentCommit = $this->fetchCurrentCommit($git);

        $cacheId = \md5(__FUNCTION__ . \serialize($currentCommit));

        if (!$this->cachePool->has($cacheId)) {
            $logList = \json_decode(
                \sprintf(
                    '[%s]',
                    \trim(
                        // git log --simplify-merges --format=$this->logFormat()
                        $git->log()->simplifyMerges()->format($this->logFormat() . ',')->execute(),
                        ','
                    )
                ),
                true
            );

            $this->cachePool->set($cacheId, $logList);

            return $logList;
        }

        return $this->cachePool->get($cacheId);
    }