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

Вопрос или проблема

Я использую операционную систему Fedora и хочу отображать ветку или тег git в терминале, когда захожу в папку проекта git.

Я следую этому руководству. После того как я выполнил:

source /usr/share/git-core/contrib/completion/git-prompt.sh
source ~/.bashrc

Ветка git отображается хорошо. Но если я выполню:

cd .. # я возвращаюсь в родительскую папку, которая не является папкой git

Ветка git остается. Как я могу это исправить?

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

# функция для PS1, которая отображает [ git ветка], когда она определена
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.

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

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

введите описание изображения здесь

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

# чтобы добавить имена веток git
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\]"

# без хоста
PS1="$GREEN\u$NO_COLOR:$BLUE\w$YELLOW\$(parse_git_branch)$NO_COLOR\$ "
# с хостом
# PS1="$GREEN\u@\h$NO_COLOR:$BLUE\w$YELLOW\$(parse_git_branch)$NO_COLOR\$ "

введите описание изображения здесь

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

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

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

введите описание изображения здесь

Ссылки

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

Ответ или решение

Отображение текущей ветки Git в терминале Fedora

Если вы используете Fedora и хотите, чтобы в терминале отображалась текущая ветка или тег Git при переходе в директорию проекта, следуйте этому подробному руководству.

Шаг 1: Открытие файла конфигурации

Чтобы внести изменения в отображение, необходимо редактировать файл настроек вашего терминала ~/.bashrc или ~/.bash_profile. Для этого выполните следующие команды в терминале:

cd ~  # Переход в домашнюю директорию
ls -a  # Проверяем наличие .bashrc или .bash_profile

Если файл .bashrc существует, откройте его с помощью текстового редактора, такого как nano:

nano .bashrc

Шаг 2: Добавление функции для отображения ветки Git

Пролистайте в конец файла и добавьте следующий код:

# Функция для отображения названия текущей ветки Git
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\]"

# Промпт без имени хоста
PS1="$GREEN\u$NO_COLOR:$BLUE\w$YELLOW\$(parse_git_branch)$NO_COLOR\$ "

Эти строки создают функцию parse_git_branch, которая будет получать текущую ветку и отображать её в терминале. Настроенный PS1 будет обновляться каждый раз, когда вы вводите команду в терминале.

Шаг 3: Применение изменений

Сохраните изменения в nano, нажав Ctrl + O, а затем Enter, и выйдите, нажав Ctrl + X.

Чтобы применить изменения в текущем сеансе терминала, выполните:

source ~/.bashrc

Или перезапустите терминал с помощью:

exec bash

Замечание о временном поведении

Если после выполнения команды cd .. (переход к родительской директории) по-прежнему отображается название ветки, не беспокойтесь. Решением этой проблемы является корректная реализация отображения ветки во время обновления промпта. Использование функции и настройка PS1, как указано выше, должны перезапускать отображение при каждом вводе команды.

Таким образом, вы должны увидеть название ветки только в тех каталогах, которые являются репозиториями Git.

Заключение

Следуя этим шагам, вы можете легко настроить свой терминал на Fedora таким образом, чтобы он отображал текущую ветку Git в промпте. Это сделает работу с проектами более удобной и эффективной. Не забудьте время от времени проверять файл .bashrc на наличие других полезных настроек, которые могут улучшить ваше взаимодействие с терминалом.

Оцените материал
Добавить комментарий

Капча загружается...