看这里: http://www.jarrodspillers.com/2009/08/19/git-merge-vs-git-rebase-avoiding-rebase-hell/
Conclusion:
Merge works great, but creates lots of empty merge commits when you are working on a team.
Rebase keeps things tidy, but is destructive and potentially dangerous if you don’t know what you are doing.
Keep yourself safe with a simple rule:
Don’t rebase branches you have shared with another developer.
Do otherwise at your own peril - yes, it will hurt.