Don't commit half-ready implementation. It will (at least one of this)
I will do exactly this. Rember, SeparatePolicyAndMechanism. I will often checkin the mechanism early with a policy that is do not apply mechanism in any case.
So your principle is to apply anti-YagNi? You check it in even when it can be demonstrated that you don't need it?
This is highly dependent on your VersionManagement software. It is very helpful to have a system that can commit changes, but not apply them to the mainline build (yet). This gives a good rollback point to base further work on, without disturbing other developers.
For example, with git, you can commit many times to a private branch your local repository, and push your changes to the lead developer only when they are ready for integration. See ExtremeVersionControl.