Чтобы получить дополнительную информацию в приглашении для Git Zsh - PullRequest
0 голосов
/ 14 июля 2009

Торвальдс, кажется, имеет следующее приглашение .

[torvalds@g5 git]$ 

Первое слово - имя пользователя. g5 представляется веткой в ​​Git-репо, а git показывает, что это ветка в Git.

Моя текущая подсказка

PROMPT="$"

Как вы можете получить приглашение, похожее на приглашение Торвальдса?

Ответы [ 6 ]

4 голосов
/ 14 июля 2009

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

3 голосов
/ 14 июля 2009

Интеграция Git с программируемым завершением Bash предоставляет функцию с именем __git_ps1.

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

[user@host ~]$ cd /usr/src/linux
[user@host linux ((v2.6.30))]$
2 голосов
/ 15 июля 2009

Если вы используете zsh (а не более популярный bash), взгляните на VCS-информацию в приглашениях сообщение в блоге Xana Yammering об использовании подсистемы vcs_info, разработанной Фрэнком Тербеком для zsh, с бэкендом для Git.

1 голос
/ 15 июля 2009

Как сказал ephemient, вам понадобится установить Git bash script , инструкции по установке находятся в верхней части файла. Вы также можете зайти на страницу справочника Github . Стоит отметить, что ветвь будет отображаться, только если вы находитесь в каталоге git. Например, вот как выглядит моя обычная подсказка: blaenk@macbook:~ $ и подсказка выглядит так, когда я нахожусь в каталоге git: blaenk@macbook:~/code/iphone/DIFM (master*)$

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

export GIT_PS1_SHOWDIRTYSTATE=true

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

git checkout -- the/file.txt

Между прочим, этот скрипт bash с автоматическим завершением также действительно хорош. Наконец, вы можете сделать что-то вроде 'git chec', затем нажать TAB, и он автоматически завершится, например, к оформлению заказа, и вы также можете автоматически заполнить имена филиалов.

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

0 голосов
/ 06 июня 2016

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

Liquid Prompt позволяет выполнять множество настроек в приглашении zsh, включая отображение ветки git и различные раскраски для разных состояний хранилища git.

0 голосов
/ 15 июля 2009

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

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

Источник

...