Ouch, this sounds terrible. What if two functions/classes/top-level-constructs have the same name (and signature)? Now you have a conflict and your project won't build anymore.
Use version control, develop new features in branches, merge to master + tag. There.