Push after a partial commit to prevent data loss. This isn't complete and doesn't have complete test coverage.