Предыдущий ролик Следующий ролик  

Видео урок: Настройка командной строки для показа бранчей

Git: обучение основам

Теперь, когда мы понимаем основы работы с бранчами, я хочу сделать паузу и добавить кое-что в конфигурацию, а именно я хочу настроить командную строку, чтобы она показывала нам бранчи. В этом нет абсолютной необходимости, но я считаю, что разработчики, работающие с Git захотят сделать это, так что давайте так и поступим. Итак, командная строка - это вот эта штука, которой мы начали пользоваться в самом начале. И каждый раз, когда я набираю Return, командная строка показывает мне кусок текста. Конечно, ваша командная строка выглядит иначе, чем моя, потому что я настроил свою так, чтобы в ней было написано Kevin со знаком доллара.

Мы также собираемся включить сюда имя нашего бранча. Так что командная строка всегда будет нам говорить, в каком бранче мы находимся. Каждый раз, когда мы вводим в командную строку текущий бранч, она и будет находиться в нем в начале строки, и таким образом мы можем убедиться, что мы не попадем в какой-то другой бранч, когда мы на самом деле хотим находиться в основном бранче. Мы рассмотрим это в двух частях. Во-первых, мы рассмотрим эту сторону дела в Unix, это подходит для Mac OS X и Linux, а затем мы рассмотрим Windows. Первое, что нужно сделать, если вы работаете под Mac или Linux, это убедиться, что вы установили Git Completion Script, который есть в настройках.

Помните, мы вставили его в корневую директорию, .git-completion.bash, а затем мы также сделали запись, чтобы загрузить его либо в bash_profile или в файл bashrc, так что один из них должен быть загружен в git-completion. А причина того, зачем нам нужен этот файл, заключается в том, что этот файл объявляет функцию, которую мы собираемся использовать. Этой функцией является __git_ps1. Мы можем просто набрать ее из командной строки, и тогда она вернет нам имя бранча, в котором мы находимся. Если мы поменяем бранч, тогда она покажет нам текущий бранч.

Итак, это функция, которую мы будем использовать, и мы будем использовать ее изнутри командной строки. Если вы не находитесь в директории Git, а я вернусь, например, в папку Documents, вот видите, я сейчас в Documents, и если я напишу __git_ps1, вообще ничего не будет вставлено. То есть, мы должны находиться в директории Git, чтобы она это сделала. Давайте вернемся в cd explore_california/, и мы можем сделать здесь настройку. И я хочу немного вам рассказать о приглашениях командной строки в Unix, если вы еще этого не знаете. Приглашение командной строки хранится в переменной PS1, что обозначает Prompt String 1, и мы можем увидеть текущее значение Prompt String 1, набрав echo, а затем $PS1.

И тогда командная строка говорит мне, что этими символами являются kevin$. Ваше приглашение, возможно, будет включать в себя некоторые буквы и символы, которые представляют динамические данные, и у вас может быть фактически все, что угодно, в приглашении командной строки, вы можете сделать так, чтобы было показано текущее время, дата, директория, в которой вы находитесь, все, что хотите. Вы можете погуглить и посмотреть, что вы можете сделать. Чтобы установить приглашение на нечто иное, вам нужно экспортировать PS1, в этот раз никакого знака доллара, равно, а затем внутри одинарных кавычек мы можем вставить все, что хотим иметь в приглашении.

Но давайте просто поставим набор стрелочек. Итак, это наше приглашение, или мы можем поставить несколько дефисов со стрелочками, вот оно. Оно может выглядеть, как угодно. Моим было такое - kevin$ с пробелом после него. Пробел важен, потому что так Git определяет, где мы размещаем курсор. Это основы. А теперь, на самом деле, давайте используем эту функцию и установим все так, как нам нужно. Я все это стираю, и мы вставляем внутрь одинарные кавычки и делаем подстановку в командной строке.

Для этого мы используем $(__git_ps1) и в добавление мы передаем строку формата, это нужно для автоформатирования. Мы вставляем это внутри двойных кавычек, а затем важной частью является то, что у нас есть знаки %, и здесь идет имя бранча. Эти знаки % я окружаю круглыми скобками, то есть я хочу, чтобы они были в круглых скобках. Вы можете сделать нечто иное. Вы можете использовать квадратные или фигурные скобки, все, что хотите, так вы форматируете выходные данные.

И в конце этой стилизации выходных данных я вставляю пробел, затем стрелку и пробел. Теперь давайте нажмем Return, и вот что Git показывает мне сейчас. Он мне говорит, в каком бранче я сейчас нахожусь. В дополнение к этому вы можете вставить сюда что-то еще, вы можете настроить приглашение командной строки так, как сами пожелаете. Способ, которым я это делаю и который я вам рекомендую, заключается в том, чтобы использовать \W, и это будет вашей текущей рабочей директорией, не рабочей директорией в Git, а рабочей директорией в Unix.

Когда мы нажмем Return, вы увидите, что Git говорит мне, что я в директории explore_california. Если мы вернемся, он скажет, что я в директории Documents и после нее нет бранчей. Это все хорошо. И вдруг вы заходите в Git репозиторий, и тут бранч оказывается добавленным в конце. Итак, Git говорит мне, что я в explore_ california и что у меня есть основной бранч. Это отлично работает, если только я не закрою это окно, тогда все уйдет, эта команда активна только тогда, когда открыто и активно окно.

Чтобы все сохранить, мне нужно это скопировать, а затем я должен отредактировать bash_profile или файл bashrc. Вот мы здесь, у меня есть bash_profile, который я использую, если вы используете файл bashrc, все нормально. Я отредактирую его при помощи nano, nano .bash_profile, и вы видите, что у меня здесь есть декларация, которую я использовал ранее, эту я забираю, а новую вставляю сюда, но мне нужно вставить ее после того, как я загрузил исходный код для git-completion.bash.

Вы можете загрузить его внутри оператора if или снаружи, как хотите. Это способ, чтобы убедиться, что декларация идет первой, не такая уж и плохая идея. Затем Ctrl+X, Yes, чтобы сохранить изменения, Return, чтобы сохранить имя файла, и теперь все будет на месте всякий раз, когда я открываю новое окно. Давайте посмотрим. Закрываю это окно и открываю новое, все на месте, cd в Documents/explore_california, и Git говорит мне, в каком бранче я нахожусь. git branch, вот список бранчей, git checkout, и давайте напишем seo_title, и теперь мы переключились на seo_title, вот что Git говорит мне каждый раз.

Теперь я хочу показать вам эту установку на Windows. Для Windows все может оказаться очень простым, потому что, возможно, он уже установлен. Когда я устанавливал свою версию Git, я установил и скрипт git-completion, и настроил это приглашение командной строки Git, и я настроил это приглашение так, чтобы объявление было мне показано. Вы видите здесь explore_california, и Git говорит мне, что я внутри основного бранча. Вы уже все это видели. Если по какой-то причине у вас этого нет, вы можете сделать установку. Это то же самое, давайте посмотрим, echo $PS1 покажет, что Git использует на данный момент, и вы видите, что здесь есть что-то дополнительное, здесь есть / (слэш) с числами после него, которые разукрашивают код. Он может быть зеленым, желтым и так далее.

Мы можем оставить все так или убрать это, также здесь есть имя пользователя и знак @ (собачки) для имени хоста, вот часть экрана, за которой идет та часть, что мы устанавливали на Мас. Теперь, если мы хотим сделать это сами, мы можем написать __git_ps1, чтобы увидеть, что нам возвращается то же самое, а если мы хотим настроить командную строку, если мы хотим, чтобы она выглядела как-то иначе, мы также можем сделать это при помощи bash_profile. Возможно, у вас нет здесь bash_profile, если только вы не создавали его по какой-то другой причине, но мы можем его создать.

В Unix мы бы использовали команду nano, чтобы получить простой текстовый редактор, здесь же мы используем Notepad (Блокнот), его можно найти в меню Programs (Программы), открываем его и прямо сюда пишем нашу команду. Итак, export PS1=, а затем в одинарных кавычках пишем \W$, а затем в скобках пишем нашу Git команду, __git_ps1, пробел, кавычки, скобки, все верно, а в конце я прописываю знак вставки.

Эта так же самая команда, что была и раньше. Когда я все это сделал, я сохраняю файл, я сохраняю его в директорию Kevin Skoglund, это моя пользовательская директория, называю файл .bash_profile, и смотрю, чтобы в поле Save as type стояло All Files, таким образом, в конце не будет никакого расширения. Файл просто будет называться .bash_profile. Сохраняем это и возвращаемся. Если мы пропишем ls -la для пользовательской директории, то есть, используем тильду, мы можем прокрутить вниз и увидеть, что bash_profile на месте.

Чтобы запустить скрипт bash_profile, мы можем закрыть это окно и открыть новое, или же просто набрать source ~/.bash_profile, и тогда эта команда будет запущена, и приглашение командной строки будет выглядеть так, как я хочу, то есть, explore_california, а затем имя бранча. Вот, теперь все выглядит так, как в Unix версии. Эта версия показывала цвета, обрывала текст на новую строку, вы можете это все сохранить, если хотите, но моя версия будет точно такой же, что и в Unix.