Gitのコミットハッシュ値は何を元にどうやって生成されているのか