Controlling forward/reverse current using arduino & shift registers
There may be a way of avoiding full H bridges providing you have some leniency with the power supply: -



The power supply is a split rail type that is normally used for producing +V, 0V and -V for op-amps and amplifiers etc.. Because the secondary is floating (i.e. not earthed) you can tie the negative rail to ground and have a half rail (formerly 0V) that the solenoid return current can use.

Now, you only need two FETs; one P type and one N type. You still need protection diodes of course.

When N type activated current flows thru solenoid from left to right. When p type activated current flows right to left.

If you want to melt things try activating both at the same time (this is a normal H bridge problem anyway but you have to be "solid" in how your control circuit works)!! With neither fet activated the solenoid draws no current.

There is some complication in that the P channel is referenced to the highest voltage supply and this will need an extra transistor circuit to make it gnd-logic referenced and, in the end you might favour going full integrated H bridge drive because it's simpler to build.