The Angels signed Garrett to a minor-league contract Wednesday.
Garrett was cut loose by the Giants late in spring training after it was clear he wasn't going to make the big-league roster, but he's managed to quickly catch on with another organization. Garrett has struck out 138 but also walked 81 in 117.1 innings over his last three seasons.