This lets you run git cd to go to the root of your repo, or git cd foo/bar to go to a path relative to that root. You can’t do it as an alias because it’s conditional, and you can’t do it as a git-cd command because that wouldn’t affect the current shell.
git() { if [ "$1" = "cd" ]; then shift cd "./$(command git rev-parse --show-cdup)$*" else command git "$@" fi }
This lets you run
git cd
to go to the root of your repo, orgit cd foo/bar
to go to a path relative to that root. You can’t do it as an alias because it’s conditional, and you can’t do it as agit-cd
command because that wouldn’t affect the current shell.