2009-07-14 2 views
0

Torvalds похоже the following prompt.Чтобы получить дополнительную информацию по запросу Git by Zsh

[[email protected] git]$ 

Первым словом является имя пользователя. g5 кажется филиалом в Git repo, а git показывает, что это филиал в Git.

Мой текущий проворная

PROMPT="$" 

Как вы можете иметь такой же запрос, как Торвальдс?

ответ

4

На самом деле, я предполагаю, что g5 относится к имени хоста машины, на которой он сейчас работает, и git - текущий рабочий каталог. Формат [[email protected] dir]$ - довольно стандартное (т. Е. Широко используемое) приглашение оболочки.

3

Git's integration with Bash programmable completion предоставляет функцию с именем __git_ps1.

Если вы измените ваш PS1='[\[email protected]\h \W$(__git_ps1 " (%s)")]\$ ' (в ваших .bashrc или некоторых других интерактивно-источников файл), и делать каких-либо дополнительных настроек, ваш запрос будет выглядеть следующим образом:

 
[[email protected] ~]$ cd /usr/src/linux 
[[email protected] linux ((v2.6.30))]$ 
+0

Вопрос спрашивает про zsh, а не bash. – graywh

1

Как ephemient сказал, вы хотите имеют Git bash script installed, инструкции по установке находятся в верхней части файла. Вы также можете проверить Github guide page. Стоит отметить, что ветка будет отображаться только в том случае, если вы находитесь в каталоге git. Например, это то, что выглядит мое обычное приглашение: [email protected]:~ $, и подсказка выглядит так, когда я нахожусь в каталоге git: [email protected]:~/code/iphone/DIFM (master*)$

Если вы посмотрите внимательно, то на части, где отображается ветка, после этого. Это означает, что есть неустановленные изменения; он покажет +, если изменения будут поставлены. Это может быть очень полезно. Для этого вам необходимо установить GIT_PS1_SHOWSTASHSTATE в непустое состояние. Так, например, в вашем ~/.bashrc или ~/.bash_profile, поместите следующее:

export GIT_PS1_SHOWDIRTYSTATE=true 

Теперь, когда вы идете в каталог мерзавца, вы должны увидеть индикатор, если есть какие-либо изменения unstaged или если есть какие-либо изменения в постановке. Вы можете проверить это очень быстро, отредактировав файл. Звездочка должна появиться. Вы можете восстановить файл в исходное состояние, выполнив:

git checkout -- the/file.txt 

Кстати, что автозаполнение Баш скрипт также действительно удивительным. Вы можете, наконец, сделать такие вещи, как «git chec», а затем нажать TAB, и, например, он будет автозаполнен для проверки, и вы также можете автоматически заполнять имена филиалов.

Некоторые другие ресурсы, которые вам, скорее всего, будут интересны, следующие: это поможет вам сформировать подсказку так, как вы этого хотите, и, если хотите, добавить цвет к определенным частям, что может сделать для гораздо более читабельную и информативную подсказку. Просто постарайтесь не переусердствовать.

+0

Также: http://www.simplicidade.org/notes/archives/2008/02/git_bash_comple.html –

2

Если вы используете ЗШ (а не более популярный Баша), посмотрите на VCS info in prompts блоге по Xana болтовня об использовании vcs_info подсистемы, разработанном Франк Terbeck для zsh, с поддержкой для Git.

-1

я получаю следующее наконец работать

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)\$ " 

Source

+0

Запрос не работает по неизвестной причине. Я сделал следующее приглашение, чтобы заменить его http://stackoverflow.com/questions/1128496/to-get-a-prompt-which-indicates-git-branch-in-zsh/1128721#1128721 –

+1

Не используйте 'git branch ', чтобы получить текущее название ветки, это фарфор: используйте 'git symbolic-ref HEAD'. –

0

Наткнулся этот вопрос во время обыска. Просто подумал поделиться более новым решением для этого.

Liquid Prompt допускает множество настроек для приглашения zsh, включая показ ветви git и различную раскраску для различного статуса репозитория git.

Смежные вопросы