A subgroup $H$ of a group $G$ is called a retract of $G$ if there exists an epimorphism $r:G\to H$ such that $r(h)=h$ for all $h\in H$.
Does a free group $F$ of finite rank $n$ have finitely many retracts (as a subgroup)? Does a retract of a free group $F$ of finite rank have a specific form?
What I've tried: Let $G=\mathbb{Z}$. Let $H\neq 1$ be a retract of $G$. Then there is an epimorphism $r:G\to H$ such that $r(h)=h$ for all $h\in H$. So $G=H\ltimes \mathrm{ker}(r)$. Since $\mathrm{ker}(r)\lhd G$, if $\mathrm{ker}(r)\neq 1$, then we have $\mathrm{ker}(r)=n\mathbb{Z}$, hence $H\cong \mathbb{Z}_n$ which is a contradiction to the fact that $H$ is a subgroup of free group $\mathbb{Z}$. Thus $\mathrm{ker}(r)=1$, and then $H=\mathbb{Z}$. We conclude that either $H=1$ or $H=G$.