¿Cuál es la diferencia entre ng-if y ng-show / ng-hide

Estoy tratando de entender la diferencia entre ng-ify ng-show/ ng-hide, pero me parecen iguales. ¿Hay alguna diferencia que debería tener en cuenta al elegir usar uno u