Existem três partes para isso:
- Execute algum código para alterar o diretório atual. Em zsh, você coloca esse código na % função
chpwd
. Consulte Executar scripts bash ao inserir um diretório para uma implementação bash. - Detectar cópias de trabalho do git. Como você só está interessado em git, você pode executar
git rev-parse --show-toplevel
. Existem estruturas mais avançadas para detectar o controle de versão se você estiver interessado em outros sistemas de controle de versão. - Executar
git fetch
.
Aqui está uma implementação chpwd
que executa git fetch
ao mudar para um repositório git.
chpwd () {
set -- "$(git rev-parse --show-toplevel)" 2>/dev/null
# If cd'ing into a git working copy and not within the same working copy
if [ -n "$1" ] && [ "$1" != "$vc_root" ]; then
vc_root="$1"
git fetch
fi
}
chpwd
Este código vai no seu script de inicialização do shell: .zshrc
para zsh, .bashrc
para bash (no bash você também precisa os wrappers para chamar chpwd
em uma mudança de diretório ).