Reason:
The reason is because I created repo in Github with initiated README.md file, and I tried to push a whole different project in to it.
"git merge" used to allow merging two branches that have no common base by default, which led to a brand new history of an existing project created and then get pulled by an unsuspecting maintainer, which allowed an unnecessary parallel history merged into the existing project. The command has been taught not to allow this by default, with an escape hatch
--allow-unrelated-histories
option to be used in a rare event that merges histories of two projects that started their lives independently.
Solution:
add options behind
git push origin master --allow-unrelated-histories