Question: I have an alias: `alias gco='git checkout'`

How can I add tab completion as if I had typed `git checkout`?

For my `alias g='git'` I use `compdef g='git'`.

I've been trying to use `compdef` but I've not had any success.

Answer: 
You don’t need to do anything, especially `compdef g='git'`, it should work without any configuration. You would need something only if you used function in place of an alias.
Disable this option and you're also good...

```
# don't expand aliases _before_ completion has finished
#   like: git comm-[tab]
# setopt complete_aliases

```