O problema é que && denota o fim do comando doskey e o segundo comando git é executado em linha após ele.
Eu tentei outras combinações de sintaxe, mas nenhuma delas permite que && seja analisado após a expansão doskey , além de:
doskey amend=cmd /c "git add -u && git commit --amend --no-edit"
Isso lança um novo shell, que é ineficiente. Uma solução melhor seria colocar os dois comandos em um arquivo de lote (por exemplo, amend.cmd ) e atribuir a macro a isso:
doskey amend=amend.cmd