Respostas:
Se você deseja que todas as alterações sejam masterin dev_branch, então:
git checkout dev_branch
git reset --hard master
Isso funciona apenas se outras pessoas não clonaram o repositório.
Se você já dev_branchenviou para um controle remoto, precisa:
git push --force
Para empurrar com força para o controle remoto. Aviso: Isso quebrará o histórico do ramo para as pessoas que o clonaram antes! Em seguida, outras pessoas vão ter que fazer um git pull --rebaseno dev_branchpara obter as alterações.
Você também pode renomear o ramo dev para algo antigo e criar um novo ramo mastercom o mesmo nome:
git branch -m dev_branch old_dev_branch
git branch -m master dev_branch
Ou use a oursestratégia - não sei por que ela não funcionaria para você:
git checkout master
git merge -s ours dev_branch
git checkout dev_branch
git merge master
dev_branchpara a origem (se ela tivesse uma) e também não terá mais umamasterfilial localmente.