Para ter informações extra em um prompt para Git por Zsh
Pergunta
Torvalds parece ter a seguinte mensagem .
[torvalds@g5 git]$
A primeira palavra é nome de usuário. g5
parece ser uma filial na Git repo, enquanto mostra git
que é uma filial na Git.
Meu atual rápida
PROMPT="$"
Como você pode ter um prompt semelhante como Torvalds'?
Solução
Na verdade, eu estou supondo que g5
refere-se ao nome da máquina ele está trabalhando atualmente, e git
é o diretório de trabalho atual. O formato [user@hostname dir]$
é um padrão muito (ou seja, amplamente utilizado) janela de comandos.
Outras dicas
a integração do Git com Bash conclusão programável fornece uma função chamada __git_ps1
.
Se você mudar de PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ '
(em sua .bashrc
ou algum outro arquivo de forma interativa de origem), e fazer Nada mais personalizações, o seu olhar irá pedir assim:
[user@host ~]$ cd /usr/src/linux [user@host linux ((v2.6.30))]$
Se você usar zsh (em vez de festa mais popular), dê uma olhada em info VCS em prompts post no blog de Xana yammering sobre o uso do subsistema vcs_info
desenvolvido por Frank Terbeck para zsh, com infra-estrutura para Git.
Como ephemient disse, você vai querer ter que script bash Git instalado , instruções de instalação estão perto do topo do arquivo. Você também pode querer verificar o Github página do guia para isso. Uma coisa a notar é que o ramo só vai aparecer se você estiver em um diretório git. Por exemplo, este é o que os meus olhares rápidas normais como: blaenk@macbook:~ $
eo prompt olhares como este quando eu estou em um diretório git: blaenk@macbook:~/code/iphone/DIFM (master*)$
Se você olhar de perto, a parte em que ele mostra o ramo, mestre, tem um asterisco depois. Isso significa que há mudanças unstaged; ele irá mostrar a + se as mudanças são encenadas. Isso pode ser bastante útil. Para fazer isso, você basicamente tem que definir GIT_PS1_SHOWSTASHSTATE
para um estado não-vazio. Assim, por exemplo em sua ~/.bashrc
ou ~/.bash_profile
, coloque o seguinte:
export GIT_PS1_SHOWDIRTYSTATE=true
Agora, quando você vai para um diretório git, você deve ver o indicador se houver qualquer alteração unstaged ou se houver qualquer encenado mudanças. Você pode testar isso realmente rápido, editando um arquivo. O asterisco deve aparecer. Você pode então restaurar o arquivo ao seu estado original, fazendo:
git checkout -- the/file.txt
A propósito, que script bash completa auto também é realmente incrível. Você pode finalmente fazer coisas como 'git chec' então TAB imprensa, e ele vai autocomplete para Caixa por exemplo, e você também pode auto nomes ramo completo também.
Alguns outros recursos que você provavelmente irá estar interessado em são os seguintes, que guiá-lo através do processo de formação de sua linha de maneira que você quer, e se você quiser, adicionar cor a certas partes, o que pode fazer para um muito mais mais legível e informativa pronta. Apenas tente não exagerar.
Deparei com esta questão durante uma busca. Só pensei para compartilhar uma solução mais recente para isso.
Líquido Prompt permite que muitos personalização para o prompt zsh, inclusive mostrando o git branch e vários colorização para diferentes estado do repositório git.
Eu recebo a seguinte finalmente trabalho
function get_git_branch {
git branch | awk '/^\*/ { print $2 }
}
function get_git_dirty {
git diff --quiet || echo '*'
}
function get_git_prompt {
git branch &> /dev/null || return 1
echo "($(get_git_branch)$(get_git_dirty)) "
}
PROMPT="$(get_git_prompt)\$ "