Introduction
Today I’m going to share a git flow with the following qualities:
- In development, you could make arbitrary commits. 
- After testing, you could turn the arbitrary commits which are more friendly in development into commits compliant with production standard. 
- The content of two branches are exactly the same, however, with totally different commit history.