Volta/desfaz um merge e delea os arquivos adicionados `git reset HEAD~1 --hard` Merge com Squash junta todos os comits e cria um único comit com as mudanças. Isso é bom para não poluir a master e ter um ponto de referência ao realizar esse merge. Fácil reversão `git merge feature/x --squash` Merge com reabase junta os comits entre o comit mais antigo e o mais novo. Não recomendado usar para merge para master pois pode bagunçar bastante o código. Use sempre o inverso quando precisar mergar a master com o branch. `git rebase feature/x` Voltar um estado anterior de um comit em um arquivo específico `git checkout `