Git tree hashes make better cache keys

Commit hashes change on reword or reordering, tree hashes are more efficient