To prevent re-clone repository from remote, using symlink folder strategy is more efficient.

git config core.symlinks true

(It may be wise to check for other non-default settings, especially if the SD-card repository was created by a different OS.)

As discussed in comments, the key element here was that the repository was originally created on a non-symlink-supporting file system, and then moved (copied manually) to a symlink-supporting file system. The git config documentation, down in the section describing core.symlinks, says:

If false, symbolic links are checked out as small plain files that contain the link text. git-update-index(1) and git-add(1) will not change the recorded type to regular file. Useful on filesystems like FAT that do not support symbolic links.

The default is true, except git-clone(1) or git-init(1) will probe and set core.symlinks false if appropriate when the repository is created.

In general, it’s a little bit safer to git clone a repository when moving it across logical or physical drives, since the new clone will probe the new file system’s settings. Git is fairly good at autodetecting other changes (e.g., the index encodes the work-tree path) and most of these settings are OS-specific rather than file-system-specific. If you cross-boot different OSes (or run them under hypervisors) and share some media between then, though, these additional core.* settings may cause issues. See, e.g., core.fileMode and core.protectNTFS.