I'm trying to understand why the inverse image functor is left adjoint to the pushforward sheaf functor
Given $\pi:X \rightarrow Y$, show $Mor(\mathcal{\pi^{-1}\mathcal{G}}, \mathcal{F})$ is in natural bijection with $Mor(\mathcal{G},\pi_* \mathcal{F})$
I was pretty stuck with this until I started thinking about the special case where I want to consider $X = \{pt\}$ and $\mathcal{F}(pt) = S$ for some set $S$.
So I understand that then the inverse image sheaf at the poin $\pi^{-1}\mathcal{G}(pt)$ is just the stalk $\mathcal{G}_p$, where $p$ is the image of the point $\{pt\}$ in Y, and $\pi_*\mathcal{F}$ is the skyscraper sheaf with the set $S$ at $p$.
What I'm confused by is that if the two fucntors are adjoint, then the data of morhpisms of sheaves $Mor(\mathcal{\pi^{-1}\mathcal{G}}, \mathcal{F})$ is the same as the data of morphisms in $Mor(\mathcal{G},\pi_* \mathcal{F})$. So in our case, the data of maps $\mathcal{G}_p \rightarrow S$ should be the same as the morphisms of sheaves $\mathcal{G} \rightarrow \pi_* \mathcal{F}$. But I don't see why that should be the case. To my mind, the data of a map from $\mathcal{G}_p \rightarrow S$ only remembers the information of $\mathcal{G}$ 'at' $p$ but doesn't the latter remember the information of $\mathcal{G}$ for any open neighborhood around $p$? i.e. we have a family of maps $\mathcal{G}(V) \rightarrow \pi_*\mathcal{F}(V)$ and not just the information at $p$.
To put it more formally, given $\phi \in Mor(\pi^{-1}\mathcal{G},\mathcal{F})$, how specifically do we construct a single morphism $\psi \in Mor(\mathcal{G},\pi_*\mathcal{F})$ in this specific case?
Going backwards seems fine as for any $\psi \in Mor(\mathcal{G}, \pi_*\mathcal{F})$, we may take the induced map of stalks
Side note: I did find this post which basically asks the same question. The answer seems to suggest that it is clear why the two sets of morphisms contain the same data by the definition of a colimit or in more generality by Yoneda's lemma, but I don't see why this is the case.
$\pi_*\mathcal{F}$ is the sheaf which assigns to an open set $U$ the value $S$ if $pt\in U$ and the singleton set $\{*\}$ otherwise. A morphism $\mathcal{G}\to \pi_*\mathcal{F}$ is a compatible system of maps $\mathcal{G}(U)\to (\pi_*\mathcal{F})(U)$ for all open $U\subset Y$. In particular, as $U$ ranges over all opens containing $f(pt)$, we get a exactly what we need to determine a map $\mathcal{G}_{f(pt)}\to S$ by taking the direct limit; conversely, given a map $\mathcal{G}_{f(pt)}\to S$ we can construct a map $\mathcal{G}\to\pi_*\mathcal{F}$ by declaring the map on an open set $U\subset Y$ to be $\mathcal{G}(U)\to\mathcal{G}_{pt}\to S=\pi_*\mathcal{F}(U)$ whenever $f(pt)\in U$ and the unique map $\mathcal{G}(U)\to \{*\}=\pi_*\mathcal{F}(U)$ when $f(pt)\notin U$.