Redox: $\ce{Fe + 2HCl -> FeCl2 + H2}$
Oxidation: $\ce{Fe -> Fe^{2+} + 2e-}$
Reduction: $\ce{2H+ + 2e- -> H2}$
The $\ce{HCl}$ and $\ce{H2}$ are formed by covalent bonds. The $\ce{FeCl2}$ forms an ionic bond. The iron actually loses 2 electrons to the two chlorines, so the oxidation equation makes sense to me. But the hydrogen is always in a covalent bond with the chlorine or another hydrogen atom, it is always sharing electrons, never losing or gaining, so the reduction equation doesn't make sense to me. When the $\ce{H}$ is bonded with the $\ce{Cl}$, it "has" two electrons because it is sharing a pair with the $\ce{Cl}$. After the reaction, when the $\ce{H}$ is bonded with another $\ce{H}$, it still "has" two electrons because it is sharing a pair with another $\ce{H}$, so no electron was gained as the reduction equation indicates.
After a little a thinking I came up with an answer, which raised even more questions:
Since the covalent bond between the $\ce{H}$ and the $\ce{Cl}$ is a polar bond and it behaves more like an ionic compound because of that, when $\ce{HCl}$ is dissolved in water, the $\ce{H}$ will lose an electron to the $\ce{Cl}$, making $\ce{H+}$ and $\ce{Cl-}$ ions, so there is no covalent bond when $\ce{HCl}$ is in water. The $\ce{H+}$ ions can gain one electron and then make a covalent bond with each other, making $\ce{H2}$ molecules.
But what about the $\ce{Cl-}$ ions in the solution? they have already formed an octet in their outer shell by getting an electron off the hydrogen when they got separated, so they are satisfied. Then why $\ce{Fe}$ atoms oxidize? who is the oxidizing agent? The $\ce{H2}$ molecules are already comfortable with their covalent bond, and the $\ce{Cl-}$ ions are also satisfied with their octet.
I'm very confused.