git rebase vs git cherry-pick de rama separada

Tengo dos ramas:

Maestrotmp

tmp la rama está separada
Necesito ponertmp bifurcarse encima demaster con la resolución de conflictos en prioridad detmp

Cuando lo hago

git checkout tmp
git rebase --strategy=recursive -X theirs master

Recibí un error Primero, rebobinando la cabeza para reproducir su trabajo encima ...

fatal: Could not parse object '0a722ac51071ecb4d00b1ef45384aac227b942a0^'  
Unknown exit code (128) from command: git-merge-recursive 0a722ac51071ecb4d00b1ef45384aac227b942a0^ -- HEAD 0a722ac51071ecb4d00b1ef45384aac227b942a0  

Cuando lo hago

git checkout tmp
git cherry-pick --strategy=recursive -X theirs 0a722ac..384144a 

Funciona bien

¿Cuál es la diferencia o cómo puedo hacer lo mismo con rebase?

Respuestas a la pregunta(2)

Su respuesta a la pregunta