refactor pip caching and add cache git integration