Отображать ветку git в терминале

У вас, как ни странно, после | в команде стоит символ форматирования Unicode 200C, "несоединитель нулевой ширины".

Откуда вы взяли этот пример? Я предполагаю, что вы скопировали и вставили его прямо из какой-то документации, и по какой-то причине этот странный символ форматирования попал туда - я не уверен, почему именно, поскольку не могу придумать веской причины.

Ошибка, которую выдает bash, буквально верна. Если заменить символ на видимое представление, ошибка становится очевидной:

[root@alifed alireza]# ps aux |200C grep dnf
bash: 200C: command not found...

Оболочка думает, что вы передаете вывод ps aux команде с именем этого непечатаемого символа и grep dnf в качестве аргументов. Но, конечно, команды с таким именем не существует, так что это говорит вам об этом.

Почему я заподозрил, что проблема в этом? Потому что нормальный синтаксис ошибок в bash -

$ noncommand
bash: noncommand: command not found...

а в ошибке, о которой вы сообщили, там, где должна быть отсутствующая команда, стоит пробел. Если бы ps или grep отсутствовали, он бы сказал вам bash: ps: команда не найдена или bash: grep: команда не найдена. И поскольку вы вставили точную команду и ошибку в свой вопрос вместо того, чтобы перепечатывать ее (потрясающе - всегда лучшая практика!), я смог изучить результаты и повторить. (Кстати, это происходит и с не-рутом - su это красная селедка)

.

2
03.10.2018, 12:32
2 ответа

Не уверен, что туториал ведет себя неправильно, но вы можете легко сделать это самостоятельно. Определите такой псевдоним в.bashrc:

# function for PS1 to display [ git branch] when it is defined
function __show_git_branch() {
  branch=`git rev-parse --abbrev-ref HEAD 2>/dev/null`
  test -n "$branch" && echo " [$branch]"
}

затем установите PS1 примерно так:

PS1='-- $(__show_git_branch) \$ '

Это приведет к пересчету ветки git каждый раз, когда отображается приглашение. Если есть ошибка, она отправляется в /dev/null, а последующий testничего не будет выводить, так что это вернет пустую строку, если вы не находитесь в каталоге git.

Вы не спрашивали об этом, но я передаю это как «подсказку». Может быть полезно знать, что вы повторно -инициализируете все , играя с bashпсевдонимами и переменными окружения. Простой способ сделать это — использоватьexec:

exec bash

Это повторно -запустит bash поверх запущенной в данный момент оболочки. Если вы хотите перезапустить его, как будто вы снова входите в систему, тогда exec bash -l.

0
27.01.2020, 22:33

Добавьте эти строки кода в свой файл ~/.bashrcили .bash_profile

  1. открыть терминал. И перейдите в свой домашний каталог в терминале (, который обозначается~). Вы можете перейти в домашний каталог, используя cdкоманду и нажмите Enter в терминале.
  2. Теперь вы вводите laи видите, существует ли профиль.bashrc или.bash _.
  3. Теперь откройте любые файлы, используя sudo nano.bashrc(, здесь вы можете использовать либо .bashrc, либо .bash_profile). Я использую файл .bashrcздесь

enter image description here

Теперь ваш нано-редактор предложит перейти в нижнюю часть вашего нано-редактора, нажав клавишу со стрелкой вниз -и вставить следующие строки кода в конец вашего файла.

# to add the git branch names
function parse_git_branch () {
  git branch 2> /dev/null | sed -e '/^[^*]/d' -e 's/* \(.*\)/(\1)/'
}
 
RED="\[\033[01;31m\]"
YELLOW="\[\033[01;33m\]"
GREEN="\[\033[01;32m\]"
BLUE="\[\033[01;34m\]"
NO_COLOR="\[\033[00m\]"

# without host
PS1="$GREEN\u$NO_COLOR:$BLUE\w$YELLOW\$(parse_git_branch)$NO_COLOR\$ "
# with host
# PS1="$GREEN\u@\h$NO_COLOR:$BLUE\w$YELLOW\$(parse_git_branch)$NO_COLOR\$ "

enter image description here

Теперь нажмите Ctrl + s , чтобы сохранить файл, и нажмите Ctrl + x , чтобы выйти из редактора nano.

Теперь вы закончили.

Теперь проверьте свой репозиторий git, он увидит название ветки с цветными названиями.

enter image description here

Ссылки

https://gist.github.com/danielalvarenga/2df8cabbd6f3041c2378

0
07.09.2021, 04:27

Теги

Похожие вопросы