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?
 A: 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).
A: Pullbacks generalise many common situations; they can be thought of as equationally defined sub-objects or as the subobjects of products that satisfy certain equations.
Here are a few examples of pullbacks off the top of my head:

*

*inverse images are pullbacks

*intersection of subsets is a pullback

*

*more generally, intersection of (copies of) structures embedded in common larger structure, is a pullback; e.g., see here



*equationally defined categories (including sets) are pullbacks

*

*E.g., the category of elements of a functor to sets is obtained via pullback

*E.g., the set of solutions to any equation in two unknowns, such as
$3x + 2 = y$, is obtained by pullback



*Relations are essentially spans and then relation composition is given by pullback

*characteristic predicate for sets make certain squares pullback, and that condition is used to specify characteristic arrows and truth-objects in general categories

*(binary) pullbacks and a terminal object yield all (finite) limits

*

*E.g., products and equalisers are pullbacks



In contrast, whereas pullbacks let us intersect in a mutual context, pushouts let us union along a mutual shared context. E.g., the pushout of two graph homomorphisms $A \leftarrow I \rightarrow B$ is essentially the union $A \cup B$ but we 'identify' (glue, "make equal") all the pieces that orginate from $I$; i.e., we make the disjoint union but treat the images of $I$ as being "the same" and so do not repeat those parts.
