What is the intuition behind pushouts and pullbacks in category theory? What is the intuition behind pullbacks and pushouts? For example I know that for terminal objects kind of end a category, they are kind of last is some sense, and that a product is a kind of pair, but what about pullbacks and pushouts what are the reasoning behind this names?

Pullbacks are fibred-products, i.e., a product with some compatibility restrictions.  The terminology came from differential geometry when you really pull differential forms or their bundle on $B$ back to differential forms or their bundle on $A$ along immersion $A\to B$.  Product $A\times B$ is just a special case when you pullback
$$
\require{AMScd}
\begin{CD}
@. B\\
@. @V{!}VV\\
A@>{!}>> 1
\end{CD}
$$
which the terminal object $1$ doesn't impose any restrictions, and get
$$
\begin{CD}
A\times B@>{\operatorname{proj}_2}>> B\\
@V{\operatorname{proj}_1}VV @V{!}VV\\
A@>{!}>> 1
\end{CD}
$$
Dually we have pushouts as a kind of sum, subject to some constraint.  Indeed, in Sets we have the disjoint union
$$
\begin{CD}
\varnothing@>{!}>> B\\
@V{!}VV @V{i_2}VV\\
A@>{i_1}>> A\amalg B
\end{CD}
$$
as the pushout of $\varnothing\to A,B$, and we also have
$$
\begin{CD}
A\cap B@>>> B\\
@VVV @VVV\\
A@>>> A\cup B
\end{CD}.
$$
I don't think "pushout" was coined before the late-1940s when category theory came along, and merely chosen because it is clearly opposite to "pullback" (a similar word "pushforward" existed in other context but that name was not chosen).
