What is the difference between opam pin and opam install, when to use one vs the other?

related to this discussion: coq_project_name at some point I cared about this because I wanted to remove the pin but now that I understand that I need it for custimizations of coq projs installs it sounds safer to stick with opam pin.

I am still curious if I need to opam pin if we are building the projects with make clean -C e.g. make clean -C ~/proverbot9001/coq-projects/CompCert.