`git rev-parse <tag>^{commit} ` resolves to the commit that the tag points to. `repo.rev_parse("<tag>^{commit}")` says `ValueError: Could not accommodate requested object type 'commit', got tag` It should instead return `TagObject.object` (at least if that is a commit object).