Intuitive explanation for the relation between push-forward and pullback I am relatively new to advanced math so sorry in advance if the following is not phrased correctly or not rigorously enough.  
Let $M_1, M_2$ be differentiable manifolds, $\phi:M_1\rightarrow M_2$ be a smooth map and the mapping $f:M_2 \rightarrow \mathbb R$. Also, let $p \in M_1$ and $v \in T_pM_1$. Now, consider the push-forward  $\phi_*: T_pM_1 \rightarrow T_{\phi(p)}M_2$ defined as $\phi_*(v)=d\phi_p(v)$ with $d\phi$ being the differental of $\phi$.
Lastly, consider the pull-back $\phi^*(f)=f \circ \phi$, or more clearly $(\phi^*(f))(p)=f(\phi(p))$.  
Now, the question is:
Upon giving us the above definition for the pushover, which just sends tangent vectors at $p$ in $T_pM_1$ to tangent vectors at $\phi (p)$ in $T_{\phi (p)}M_2$, our professor gave us another definition for the push-forwards which relates it to the pullback. The definition is as follows:
$(\phi_*(v))(f)(\phi (p))=v(\phi^*(f))(p)=(u(f \circ \phi))(p)$.  
So, finally, my problem is that I can't quite get the geometric intuition behind their relation. I try to view it in terms on mappings, and while I get why the pullback is called the pullback(check the image in the 2nd answer in this link: Geometric intuition behind pullback?), and I get the intuition behind what the push-forward does(which I described above), I don't know how to relate them.
I mean, when we use the push-forward, we are pushing tangent vectors in $M_1$ over to tangent vectors in $M_2$. But, why is the last definition that I gave valid(well, it's a definition, so it might be better to ask why is it intuitive)?  
In particular, I would like an intuitive explanations using mapping from and to $M_1, M_2, \mathbb R$.  
EDIT: The above notation follows closely the notation from Do Carmo's "Riemannian Geometry".
 A: The fundamental intuition is that it doesn't matter which manifold you do your calculations in, you get the same result either way.
This was already clear in the case of coordinate charts; calculus on a manifold is often defined in terms of what you get using coordinates to map the problem over to Euclidean space. The point is that the idea extends to more general manifolds than just Euclidean space.
Given a vector on $M_1$ and a scalar field on $M_2$, there are two ways you might combine them to get a directional derivative: either pull the problem back to $M_1$ or push it forward to $M_2$. The identity you cite is the one that asserts you get the same answer both ways.

Anyways, I think there is an extremely compelling algebraic rationale for this.
Suppose you are doing calculus in one variable $x$, then later you decide you need a second independent variable $y$. This changes absolutely nothing about the calculations you've done — if $y$ doesn't appear in any of your calculations, everything is as if it didn't exist at all.
I.e. $\mathrm{d} \sin(x) = \cos(x) \mathrm{d} x$ is always true; it doesn't matter whether or not you have any other variables and whether or not $x$ is dependent with any of them.
Consider the case where $\phi$ is the projection onto the first component map $\mathbb{R}^2 \to \mathbb{R}$, using standard coordinates on both.
The pullback $\phi^*$ on scalar fields is precisely the "add in the variable $y$" operation. The push forward $\phi_*$ on vectors expresses the fact only the $x$-direction matters. It's clear that if we have $v \in T\mathbb{R}^2$ and $f \in \mathcal{C}^1(\mathbb{R})$, then we expect
$$ (\phi_* v)(f) = v(\phi^* f) $$
because both formulas are expressing exactly the same operation.
