Establecer un alias dentro de un alias

Estoy tratando de hacer algo como esto:

> function gitb(){ git checkout -b $1; alias $1='git checkout $1'; } > gitb sample Switched to a new branch 'sample' > git checkout master Switched to branch 'master' > sample Switched to branch 'sample' 

Pero, la function gitb no se comporta como se esperaba porque:

 > alias sample alias sample='git checkout $1' 

en lugar de

 > alias sample alias sample='git checkout sample' 

¿Alguien puede decirme cómo lograr lo que bash?

Conozca la diferencia entre comillas simples y dobles.

 function gitb() { git checkout -b $1; alias $1="git checkout $1"; }