Now Repository.head behaves like libgit2's git_repository_head, it returns the resolved reference. These two lines are equivalent: ref = repo.head ref = repo.lookup_reference('HEAD').resolve() Before it returned a commit.