Makepkg doesn't clone the repository anew every time, there's a check for an already existing clone in its source. If a non-empty clone is found that has the correct remote URL, all makepkg does is fetch the new commits. This will look like the following in makepkgs output:
==> Retrieving sources...
-> Updating mpd-git git repo...
remote: Compressing objects: 100% (91/91), done.
remote: Total 481 (delta 392), reused 479 (delta 390)
Receiving objects: 100% (481/481), 64.87 KiB | 0 bytes/s, done.
Resolving deltas: 100% (392/392), completed with 99 local objects.
cd1148c..3fa4dad master -> master
cd1148c..3fa4dad origin/master -> origin/master
0d7ee2b..b0ff3bc origin/v0.19.x -> origin/v0.19.x
* [new tag] v0.19.10 -> v0.19.10
Unless you pass
--cleanbuild to makepkg, it will also not remove the source directory used for building the package, so in theory, you would not need to rebuild the whole package. However, there might be cases where the configure script or other scripts called in
build() cause the build process to recompile everything.