skovalyov skovalyov - 3 months ago 15
Git Question

How to check if the commit exists in a Git repository by its SHA-1

In a similar topic Validate if commit exists they recommend:

git rev-list HEAD..$sha


If it exits without error code than the commit exists.

But is it efficient enough just for validation?

I was thinking about this option:

git cat-file commit $sha


Is it correct for my task and are there any other ideas?

Answer

You can just run git cat-file -t $sha and check it returns "commit". You are right, you don't need to actually print the actual object for that...

I'm not 100% sure that what goes on behind the scene is more efficient, though.

test $(git cat-file -t $sha) == commit

Comments