I have a local develop branch "dev" and a remote "master" branch. For the "dev" branch, I have a quite complicated commit history(nearly 20 successive commits). I tried to use 

```
"git rebase -i origin/master" 

```

at "dev", however, I found this process is very error-prone(you have to apply each commit one by one and resolve conflicts..) and frustrating...
What I need now is to compress the commit history at "dev" to a single commit and push this big commit to "master" for review and merge.
Is there any safe and efficient way to do that?
Thank you guys very much!