At LK when working on code we use modified version of the Git Workflow that is simply
Create a private branch off a public branch. Regularly commit your work to this private branch. Once your code is working, clean up its history. Merge the cleaned-up branch back into the public branch.