Per avere più informazioni, a un prompt per Git da Zsh
Domanda
Torvalds sembra avere il seguente messaggio.
[torvalds@g5 git]$
La prima parola è il nome utente. g5
sembra essere una succursale in un repository Git, mentre git
mostra che è un ramo Git.
La mia richiesta corrente
PROMPT="$"
Come si può avere una simile richiesta Torvalds?
Soluzione
In realtà, sto cercando di indovinare che g5
si riferisce al nome host della macchina che è attualmente al lavoro, e git
è la directory di lavoro corrente.Il formato [user@hostname dir]$
è abbastanza standard (cioè, ampiamente utilizzato) prompt della shell.
Altri suggerimenti
Git integrazione con Bash completamento programmabile fornisce una funzione di nome __git_ps1
.
Se si cambia PS1='[\u@\h \W$(__git_ps1 " (%s)")]\$ '
(nel tuo .bashrc
o in qualche altro modo interattivo di provenienza di file), e non e ulteriori personalizzazioni, il prompt sarà simile a questa:
[user@host ~]$ cd /usr/src/linux [user@host linux ((v2.6.30))]$
Se si utilizza zsh (piuttosto che il più popolare bash), dare un'occhiata a VCS info prompt post del blog da Xana Yammering su utilizzando vcs_info
sottosistema sviluppato da Frank Terbeck per zsh, con backend per Git.
Come ephemient detto, è necessario che Git bash script installato, istruzioni di installazione sono vicino alla parte superiore del file.Si potrebbe anche voler controllare la Github guida pagina per questo.Una cosa degna di nota è che il ramo verrà visualizzata solo se si è in un git directory.Per esempio, questo è ciò che il mio prompt normale, assomiglia a questo: blaenk@macbook:~ $
e il prompt simile a questo, quando mi trovo in un git directory: blaenk@macbook:~/code/iphone/DIFM (master*)$
Se si guarda da vicino, la parte in cui si mostra il ramo, master, ha un asterisco dopo di esso.Questo significa che non ci sono unstaged modifiche;essa mostra un + se le modifiche sono messe in scena.Questo può essere molto utile.Per fare questo, in sostanza, è necessario impostare GIT_PS1_SHOWSTASHSTATE
per un non-stato vuoto.Così, per esempio, nel vostro ~/.bashrc
o ~/.bash_profile
, inserire il seguente:
export GIT_PS1_SHOWDIRTYSTATE=true
Ora, quando si va a un git directory, si dovrebbe vedere l'indicatore se ci sono unstaged modifiche o se ci sono in scena le modifiche.Puoi provare questo fuori davvero rapida per la modifica di un file.L'asterisco dovrebbe mostrare.È quindi possibile ripristinare i file al suo stato originale da fare:
git checkout -- the/file.txt
A proposito, che il completamento automatico bash script è davvero impressionante.Si può finalmente fare cose come "git chec' e premere il tasto TAB, e il completamento automatico di estrazione per esempio, e si può anche auto completa di ramo i nomi troppo.
Qualche altra risorsa sarà più probabile essere interessati sono i seguenti, che guida l'utente attraverso il processo di costruzione di una vostra tempestiva nel modo desiderato, e se si desidera aggiungere colore di alcune parti, che può rendere molto più leggibile e informativo comandi.Cercate solo di non esagerare.
Sono imbattuto in questa domanda durante una ricerca.Solo pensato di condividere una nuova soluzione per questo.
Liquido Prompt permette a molti di personalizzazione per la zsh comandi, tra cui la git branch e varie colorazione per il diverso stato del repository git.
Ho il seguente, infine, il lavoro
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)\$ "