Você precisa de um / para indicar onde a especificação do host termina e o caminho começa:
git remote add origin ssh://username@hostname:10022/~/git-repo/foo.git
Eu criei o repositório git bare em meu diretório inicial como ~/git-repos/foo.git .
Para adicionar um repositório remoto, digitei como git remote add origin ssh://username@hostname:10022~/git-repo/foo.git .
Mas falha com o erro ssh: Could not resolve hostname hostname:10022~: Name or service not known .
Se eu substituir ~ para /home/username , funcionará bem.
Existe uma maneira de usar a expressão ~ para git remote com protocolos ssh?