[description] And finally, to delete a ref, use git update-ref -d refs/ Delete all refs! :P (Well, except for HEAD. HEAD is special.) [setup] echo hello > hello echo world > world BLOB1=$(git hash-object -w hello) BLOB2=$(git hash-object -w world) git add . TREE=$(git write-tree) COMMIT=$(git commit-tree $TREE -m "Initial commit") git update-ref refs/best_blob_ever "$BLOB1" git update-ref refs/beautiful_commit "$COMMIT" [setup goal] echo hello > hello echo world > world BLOB1=$(git hash-object -w hello) BLOB2=$(git hash-object -w world) git add . TREE=$(git write-tree) COMMIT=$(git commit-tree $TREE -m "Initial commit") git update-ref refs/best_blob_ever "$BLOB1" git update-ref refs/beautiful_commit "$COMMIT" for REF in $(git for-each-ref --format='%(refname)'); do git update-ref -d "$REF" done [win] test "$(git show-ref | wc -l)" -eq 0