It’s quite normal, and encouraged, that during design/development of your feature you create several spikes/prototypes, which you share with the other developers for feedback. Due to the fact that rebasing public commits is pure evil, and that we require you to rebase any updates from upstream/master, it is recommended that you:

Create one or more “MyFeatureSpike” branch(es) (or words to that effect) - this makes it quite clear to other developers that this is a temporary spike branch, and if they decide to fork it for their own work they should do so in the knowledge that it will:

a) likely be rebased, and

b) get deleted at some point.

When you’re happy with the approach, create your real feature branch and start working on that. It is suggested that you effectively “throw away” your spike branch and start afresh with a test-first approach, but as long as you end up with good quality, well tested code this isn’t enforced.