для чего нужен git bash
guides
Введение
Данное краткое руководство демонстрирует основные команды в терминале Bash:
Открытие терминала
Первая задача: открыть терминал сразу в нужном каталоге.
Linux
В Linux достаточно щёлкнуть правой кнопкой мыши на каталоге и выбрать пункт меню Open in Terminal или Открыть в терминале :
В Mac всё немного сложнее, необходимо настроить отображение этого пункта меню в Finder.
После чего при клике правой кнопкой мыши на каталоге появится необходимый пункт меню:
Windows (Git Bash)
Первоначальная настройка Git
Вы можете выполнять команды относительно текущего каталога или относительно абсолютного пути.
Bash (Git Bash в том числе) используют символ / для разделения каталогов.
Ещё два специальных обозначения помимо корня файловой системы:
Важно: в терминале символ ` ` (пробел) является символом, разделяющим команды и опции. Поэтому если в пути есть пробел, то варианта два:
Переменные окружения
Командная оболочка устанавливает ряд переменных, которые выполняют специфические функции. Так, переменная с именем PATH содержит список путей, в которых будет производиться поиск программы, если вы наберёте её название в терминале.
Для вывода содержимого конкретной переменной используется команда echo следующим образом:
Команда printenv позволяет отобразить все переменные окружения:
Видно, что в переменных окружения содержится достаточно много информации о системе.
Автодополнение
В командных оболочках работает автодополнение по клавише Tab :
Используйте автодополнение, так как оно позволяет сократить время на набор команды.
Ключевые команды
В этом разделе будут описаны ключевые команды, необходимые нам для работы. Естественно, список этот далеко не полный.
Текущий рабочий каталог
Отображение текущего рабочего каталога:
Смена рабочего каталога
Переход в определённый каталог:
path может быть как абсолютным, так и относительным путём.
Например, перейти на каталог выше:
Перейти в подкаталог src :
Листинг каталога
Отображает листинг (содержимое каталога):
Создание файлов
В рамках рассмотрения Bash мы рассмотрим два текстовых редактора, которые позволят вам создавать и редактировать файлы в псевдографическом режиме.
Для того, чтобы создать файл достаточно ввести команду nano и имя файла:
Откроется редактор следующего вида:
То есть чтобы записать файл и выйти следует последовательно нажать Ctrl + O (запись) и Ctrl + X (выход).
Редактор nano установлен в большинстве Unix-подобных операционных системах и Git Bash.
На освоение работы в Vim нужно потратить достаточно много времени, для этого вы можете воспользоваться интерактивным учебником vimtutor :
VS Code
В видео-лекциях используется VS Code. В Windows вы можете правой кнопкой открыть каталог сразу в VS Code.
Создание каталогов
Позволяет создавать каталоги (создаст каталог tmp в текущем каталоге):
Перемещение файлов и каталогов
Перемещение (переименование) файлов и каталогов:
Git для новичков (часть 1)
Что такое Git и зачем он нужен?
С помощью Git-a вы можете откатить свой проект до более старой версии, сравнивать, анализировать или сливать свои изменения в репозиторий.
Репозиторием называют хранилище вашего кода и историю его изменений. Git работает локально и все ваши репозитории хранятся в определенных папках на жестком диске.
Так же ваши репозитории можно хранить и в интернете. Обычно для этого используют три сервиса:
Как работает
В итоге получается очень простой граф, состоящий из одной ветки ( main ) и четырех commit. Все это может превратиться в более сложный граф, состоящий из нескольких веток, которые сливаются в одну.
Об этом мы поговорим в следующих статьях. Для начала разберем работу с одной веткой.
Установка
Основой интерфейс для работы с Git-ом является консоль/терминал. Это не совсем удобно, тем более для новичков, поэтому предлагаю поставить дополнительную программу с графическим интерфейсом (кнопками, графиками и т.д.). О них я расскажу чуть позже.
Но для начала, все же установим сам Git.
Windows. Проходим по этой ссылке, выбираем под вашу ОС (32 или 64 битную), скачиваем и устанавливаем.
Для Mac OS. Открываем терминал и пишем:
Linux. Открываем терминал и вводим следующую команду.
Настройка
Вы установили себе Git и можете им пользоваться. Давайте теперь его настроим, чтобы когда вы создавали commit, указывался автор, кто его создал.
Открываем терминал (Linux и MacOS) или консоль (Windows) и вводим следующие команды.
Создание репозитория
Теперь вы готовы к работе с Git локально на компьютере.
Создадим наш первый репозиторий. Для этого пройдите в папку вашего проекта.
Теперь Git отслеживает изменения файлов вашего проекта. Но, так как вы только создали репозиторий в нем нет вашего кода. Для этого необходимо создать commit.
Отлично. Вы создали свой первый репозиторий и заполнили его первым commit.
Процесс работы с Git
Не стоит после каждого изменения файла делать commit. Чаще всего их создают, когда:
Создан новый функционал
Добавлен новый блок на верстке
Исправлены ошибки по коду
Вы завершили рабочий день и хотите сохранить код
Это поможет держать вашу ветки в чистоте и порядке. Тем самым, вы будете видеть историю изменений по каждому нововведению в вашем проекте, а не по каждому файлу.
Визуальный интерфейс
Как я и говорил ранее, существуют дополнительные программы для облегчения использования Git. Некоторые текстовые редакторы или полноценные среды разработки уже включают в себя вспомогательный интерфейс для работы с ним.
Но существуют и отдельные программы по работе с Git. Могу посоветовать эти:
Я не буду рассказывать как они работают. Предлагаю разобраться с этим самостоятельно.
Создаем свой первый проект и выкладываем на GitHub
Давайте разберемся как это сделать, с помощью среды разработки Visual Studio Code (VS Code).
Перед началом предлагаю зарегистрироваться на GitHub.
Создайте папку, где будет храниться ваш проект. Если такая папка уже есть, то создавать новую не надо.
Установите себе дополнительно анализаторы кода для JavaScript и PHP
Откройте вашу папку, которую создали ранее
После этого у вас появится вот такой интерфейс
Здесь будут располагаться все файлы вашего проекта
Здесь можно работать с Git-ом
Кнопка для создания нового файла
Кнопка для создания новой папки
Давайте теперь перейдем во вкладу для работы с Git-ом.
Откроется вот такое окно:
Кнопка для публикации нашего проекта на GitHub
Вы создали и опубликовали репозиторий на GitHub.
Теперь сделаем изменения в коде и попробуем их снова опубликовать. Перейдите во вкладку с файлами, отредактируйте какой-нибудь файл, не забудьте нажать crtl+s (Windows) или cmd+s (MacOS), чтобы сохранить файл. Вернитесь обратно во вкладу управления Git.
Если посмотреть на значок вкладки Git, то можно увидеть цифру 1 в синем кружке. Она означает, сколько файлов у нас изменено и незакоммичено. Давайте его закоммитим и опубликуем:
Кнопка для просмотра изменений в файле. Необязательно нажимать, указал для справки
Добавляем наш файл для будущего commit
Отправляем наш commit в GitHub
Поздравляю, вы научились создавать commit и отправлять его в GitHub!
Это первая вводная статья по утилите Git. Здесь мы рассмотрели:
Как его устанавливать
Как его настраивать
Как инициализировать репозиторий и создать commit через консоль
Как на примере VS Code, опубликовать свой код на GitHub
Забегая вперед, советую вам погуглить, как работают следующие команды:
P.S. Для облегчения обучения, оставлю вам ссылку на бесплатный тренажер по Git.
Git и GitBash
Как и зачем работать с Git через командную строку? В статье содержится набор простых действий и команд, которые помогут разобраться с этим.
Перед началом статьи полезно было бы напомнить некоторые термины:
Репозиторий — место, где хранятся и поддерживаются какие-либо данные. Чаще всего данные в репозитории хранятся в виде файлов, доступных для дальнейшего распространения по сети.
Коммит (commit) — фиксация изменений любых файлов, входящих в репозиторий
Merge — слияние, принимает содержимое ветки источника и объединяет их с целевой веткой.
Push( или “Запушить”) — передача последних фиксаций на удаленный репозиторий
Работать с системой контроля версий и удалённым репозиторием можно внутри многих сред программирования. Такую функцию поддерживают, например, Visual Studio или среды компании JetBrains (PyCharm, IntelijIdea и т.д). Однако в некоторых случаях GUI не очень удобен, и приходится прибегать к работе через консоль. В нашем случае через GitBash.
Пусть на начальном уровне функционала IDEA более чем достаточно, полезно было бы уметь работать через консоль, чтобы иметь представление хотя бы об альтернативе.
Разбирать мы будем самые простые команды для:
Создание репозитория
Здесь есть несколько вариантов. Например, проект уже может лежать у нас на компьютере, а нам необходимо подключить его к системе контроля версий и связать его с GitHub. Либо же какой-то код уже имеется на удаленном репозитории GitHub, а нам лишь необходимо получить его и начать работу.
Разберем сначала второй вариант, но для начала откроем GitBash. У нас появится такое окно:
У гита есть настройка пользователя, от которого будет идти работа. Это разумная и необходимая вещь, так как когда создается коммит, гит берет именно эту информацию для поля Author. Чтобы настроить имя пользователя и пароль для всех проектов, нужно прописать следующие команды:
Далее нам необходимо выбрать папку, где будет лежать проект.
Для этого прописываем путь к папке в таком формате:
Сверху, выше черного пространства указан путь по умолчанию, поэтому можно не прописывать его заново, если мы решили сохранять проект внутри дочерних папок этого пути. В моем случае:
Далее нажимаем Enter. Теперь нам нужно «клонировать» проект из удаленного репозитория. Для этого находим нужный проект на GitHub.
Нажимаем на кнопку Code и из выпадающего окна копируем HTPPS ссылку.
Далее в консоли git bash пишем:
Теперь файлы репозитория лежать у нас на компьютере. Снова воспользуемся командой cd чтобы по относительному пути перейти в папку проекта.
Как мы видим появилась возле относительного пути надпись master, это означает что файлы данной папки подключены на систему контроля версий и на данный момент мы находимся на ветке с название master. Что такое ветки я расскажу позднее.
Теперь разберем вариант, когда у нас уже имеется какой либо проект, а нам его нужно подключить к git и загрузить на удаленный репозиторий GitHub
Для этого заходим в папку нашего проекта через консоль gitBash и используем команду:
git init — подключаем файлы к системе контроля версий
Как и в прошлый раз видим надпись master, значит, репозиторий создан, НО пока что локальный. Свяжем его с удаленным, предварительно создав на GitHub.
Так же как и в первом варианте копируем HTTPS ссылку и открываем gitBash.
Теперь мы связали наш локальный и удаленный репозитории. Осталось лишь загрузить файлы на GitHub.
Проверим командой git status возможность сделать commit.
Как мы видим файл SomeFiles.txt был изменен, но пока не готов к коммиту.
Если никаких надписей не появится – все ОК.
Теперь наши файлы готовы к коммиту.
— фиксируем изменение проекта
Чтобы проверить последние коммиты напишем команду
git log — список коммитов с полной информацией
ВАЖНО! После этой команды станет недоступна командная строка, чтобы вернуться наберите “q” в нижней строке.
git log —oneline — список коммитов с краткой информацией
И последний шаг – выгрузка на GitHub
git push —set-upstream origin master – загружаем все на удаленный репозиторий. Приписка —set-upstream origin master – связывает нашу локальную ветку master с одноименной удаленной.
Проверяем на GitHub и видим, что все файлы успешно загружены
Теперь предположим, что у нас уже есть локальный репозиторий и он связан с удаленным. Допустим какой- то программист сделал изменения в проекте и «запушили» на GitHub. Как получить обновленный код?
Для этого есть команда
git pull – обновить локальную копию удаленного репозитория
Теперь у вас на компьютере актуальная версия проекта. Можно снова править, коммитить и пушить.
Работа с ветками
Ветка в Git это подвижный указатель на один из коммитов. Обычно ветка указывает на последний коммит в цепочке коммитов. Ветка берет свое начало от какого-то одного коммита.
Во время создания проекта под управлением системы контроля версий создается ветка по умолчанию – master.
Ветка по сути — это ответвление от текущей версии проекта. Все изменения, которые будет вносить разработчик, будут сохраняться в ветке и когда функция будет полностью реализована и проверена, разработчик сможет слить все свои изменения с веткой master
Как часто бывает, над проектом работает сразу несколько программистов, и допустим, один из них работает над какой-нибудь новой функцией. Если он будет вносить изменения в master, то эти изменения могут повлиять на работоспособность проекта.
Чтобы создать ветку нужно прописать
Теперь, нужно перейти на новую ветку
Но можно все сделать за один шаг
Когда программист решает, что его функция полностью работает, он может перекинуть все изменения с рабочей ветки на ветку master. Для этого нужно переключить на основную ветку и сделать merge:
Теперь можно коммитить и пушить изменения.
Попов Даниил, после окончания базового курса, октябрь 2020
Git Bash — что это за программа?
Сразу короткий ответ: данное приложение эмулирует интерпретатор BASH, позволяющий запустить Git из командной строки Windows. Эмуляция почти повторяет поведение команды Git в операционных системах Linux и Unix.
Простыми словами: есть операционка Linux — как Windows, только совсем другая, софт тоже другой нужен, тот что для винды — не подойдет. Вот только в Linux есть очень полезная команда для программистов — Git, которая позволяет управлять версиями проекта (исходного кода). Но в Windows такой команды нет. А программисты, которые работают в Windows — хотели бы такую команду. Вот тут и нужна прога Git Bash — она ставит на винду оболочку от Linux, в которой и будет работать команда Git. Результат — программеры на Windows могут использовать команду Git из Linux, и все это сделано удобно. Например командой change directory можно указать рабочий каталог вашего проекта:
Git — что это? Набор консольных утилит, которые отслеживают и фиксируют изменения в файлах. Часто всего используется для исходных файлов приложений, но можно использовать и для других файлов. Обычно используется программистами при разработке ПО, Git позволяет отслеживать версии. Например разработчик допилил прогу так, что она стала работать глючнее, тогда можно используя Git восстановить более старую версию кода программы, где еще нет изменений разработчика.
Bash — что это? Командная оболочка UNIX, особенно популярная в среде Linux, где используется в качестве предустановленной командной оболочки. Простыми словами — как командная строка в Windows, только это в Linux. Это некое черное окошко, куда можно писать команды разные, получать результат, а также можно запускать целые скрипты, которые состоят из нескольких команд.
Надеюсь данная информация оказалась полезной. Удачи и добра, до новых встреч друзья!
Работа с Git через консоль
Другие материалы по Git
Итак, вы получили задание: сделать форк вашего репозитория в GitHub, создать ветку и начать работу. Что за GitHub, какие команды, зачем, а главное, как всем этим пользоваться? Давайте разбираться.
Система контроля версий Git
Для начала определим, что такое система контроля версий.
Так называют программу, которая позволяет хранить разные версии одного и того же документа, легко переключаться между ранними и поздними вариантами, вносить и отслеживать изменения.
Систем контроля версий много и все они работают по принципу компьютерной игры, где вы можете вернуться к месту сохранения, если что-то пошло не так.
Одна из самых популярных систем называется Git. Её отличие от других программ — отсутствие графической версии. Поэтому работа с Git ведётся через командную строку. В разных операционных системах свои программы для взаимодействия с Git.
В Windows их две: PowerShell и cmd.exe. В Ubuntu это Terminal. Самая популярная программа на macOS тоже называется Terminal. Если вам не подходит встроенная в систему программа для работы с командной строкой, вы можете поставить свою. Например, написанную на JavaScript программу Hyper, которая работает на любой операционной системе. На Windows популярны программы Cmder и Git Bash, а на macOS — iTerm.
В мире разработки такие программы называют «терминал» или «консоль». А работает это так: мы вводим команду и получаем реакцию машины: сообщение об ошибке, запрос на подтверждение информации, результат выполненных действий.
Git — важный навык веб-разработчика
А лучший способ научиться программировать — профессия «React-разработчик». В программе три интенсива, прокачка навыков и оплачиваемая стажировка.
Устанавливаем Git
Если раньше вы не работали с Git, сперва его нужно установить. Способы зависят от операционной системы вашего компьютера.
Установка в Windows
Скачайте exe-файл инсталлятора с сайта Git и запустите его. Это Git для Windows, он называется msysGit. Установщик спросит добавлять ли в меню проводника возможность запуска файлов с помощью Git Bash (консольная версия) и GUI (графическая версия). Подтвердите действие, чтобы далее вести работу через консоль в Git Bash. Остальные пункты можно оставить по умолчанию.
Установка на macOS
Установка в Linux
Используйте обычный менеджер пакетов вашего дистрибутива. Откройте терминал и введите подходящие команды.
Полный список команд для различных дистрибутивов можно посмотреть здесь.
Проверим, что Git установлен
Настройка Git
После того как Git появился на компьютере, нужно ввести свои данные, а именно имя и адрес электронной почты. Ваши действия в Git будут содержать эту информацию.
Регистрация на GitHub
GitHub — веб-сервис, который основан на системе Git. Это такая социальная сеть для разработчиков, которая помогает удобно вести коллективную разработку IT-проектов. Здесь можно публиковать и редактировать свой код, комментировать чужие наработки, следить за новостями других пользователей. Именно в GitHub работаем мы, команда Академии, и студенты интенсивов.
Чтобы начать работу с GitHub, нужно зарегистрироваться на сайте, если вы ещё этого не сделали. За дело.
Теперь у вас есть профиль на GitHub.
Устанавливаем SSH-ключи
Git установлен, профиль на GitHub создан. Осталось добавить SSH-ключ и можно приступать к работе с проектом.
Что такое SSH-ключ и зачем он нужен?
Чтобы работать со своего компьютера с GitHub, иметь доступ к проектам, хранящимся на сервисе, выполнять команды в консоли без постоянного подтверждения пароля, нужно пройти авторизацию у сервера. В этом помогают SSH-ключи.
Каждый SSH-ключ содержит пару: открытый (публичный) и закрытый (приватный) ключ. Открытый ключ отправляется на сервер, его можно не прятать от всех и не переживать, что кто-то его увидит и украдёт. Он бесполезен без своей пары — закрытого ключа. А вот закрытый ключ — секретная часть. Доступ к нему должен быть только у вас.
Вы отправляете какую-то информацию на сервер, где хранится ваш публичный ключ, сервер понимает, что вы это вы, то есть идентифицирует именно вас, и даёт вам какой-то ответ. И только вы можете расшифровать этот ответ, потому что только у вас есть подходящий закрытый ключ. Получается что-то вроде связки логин-пароль только намного безопасней. Ваш пароль кто-то может узнать или подобрать, а чтобы получить ваш приватный SSH-ключ, злоумышленнику придётся взломать ваш компьютер.
Чтобы пройти авторизацию по SSH-ключу, его надо сгенерировать или найти уже ранее созданный ключ на своём компьютере.
Сначала проверим, есть ли уже на компьютере ключ. По умолчанию SSH-ключи хранятся в каталоге
Если проблема осталась, рекомендуем работать в Git Bash.
/.ssh/config файл, чтобы автоматически загрузить ключи в ssh-agent и хранить пароли.
/.ssh права доступа командой chmod 700
Можно пойти другим путём, открыть файл id_rsa.pub прямо в папке и просто скопировать содержимое оттуда.
Нажимаем кнопку New SSH key (новый SSH-ключ). Вводим имя ключа (можно придумать абсолютно любое) в поле Title (название), а в Key (ключ) вставляем сам ключ из буфера обмена. Теперь нажимаем Add SSH key (добавить SSH-ключ).
Добавляем в свой профиль SSH-ключ.
Если всё сделано верно, в списке появится новый ключ.
Успешно добавленный ключ.
Теперь, наконец-то, мы можем начать работу с самим проектом.
Работа с репозиториями
Для начала определим, что такое репозиторий
Это рабочая директория с вашим проектом. По сути, это та же папка с HTML, CSS, JavaScript и прочими файлами, что хранится у вас на компьютере, но находится на сервере GitHub. Поэтому вы можете работать с проектом удалённо на любой машине, не переживая, что какие-то из ваших файлов потеряются — все данные будут в репозитории при условии, что вы их туда отправите. Но об этом позже.
Если над проектом трудится команда разработчиков, как правило, создаётся общий репозиторий, в котором находится рабочая версия проекта (назовём его мастер-репозиторий). При этом каждый пользователь клонирует себе в профиль оригинальный репозиторий и работает именно с копией. Такая копия называется форком. Так как форк — ваша персональная версия мастер-репозитория, в нём вы можете пробовать разные решения, менять код и не бояться что-то сломать в основной версии проекта.
Как сделать форк мастер-репозитория?
Заходим в нужный репозиторий, нажимаем на «вилку» с надписью fork. Форк репозитория создан и находится в вашем профиле на GitHub.
Теперь нужно склонировать форк себе на компьютер, чтобы вести работу с кодом локально. Тут нам и пригодится SSH.
Открываем консоль, переходим в директорию, где хотим сохранить папку с проектом, и вводим команду:
Кстати, если вы хотите, чтобы название папки с проектом у вас на компьютере отличалось от имени репозитория, можете дополнить команду клонирования, добавив в конце другое название:
Теперь, на вашем компьютере, в папке your_project или в той, название которой вы указали самостоятельно, находится полная копия репозитория c GitHub.
Сделали копию репозитория.
Новая ветка.
Эта команда позволяет переключаться между существующими ветками в проекте, после git checkout надо указать название нужной ветки.
Переключаемся между ветками.
После того как вы создали ветку, поработали в ней у себя локально — нужно сохранить результат, чтобы он не пропал и в итоге оказался в репозитории.
Состояние ветки.
Делаем коммит.
Сохранения зафиксированы, всё? Они теперь в репозитории и видны коллегам? Пока нет. Те изменения, которые мы внесли и сохранили, пока локальны. Их нужно послать на GitHub.
Отправляем изменения.
Теперь заходим на страницу нашего форка и создаём пулреквест, чтобы слить свой код с данными в мастер-репозитории. Что такое пулреквест? Это предложение изменить код в репозитории.
Вы исправили код, наставник или техлид одобрил ваши правки и принял пулреквест. Теперь код в мастер-репозитории обновился, а в вашем форке нет, вы ведь не обновляли свою версию репозитория с тех пор, как клонировали её себе на компьютер. Приведём форк в актуальное состояние.
Готово, теперь форк и оригинальный репозиторий находятся в актуальном состоянии.