Как пользоваться git bash на windows

Git Bash представляет собой пакет, который устанавливает в операционную систему Windows оболочку Bash, некоторые распространенные утилиты Bash и систему Git.

По сути Git — это набор служебных программ командной строки, предназначенных для выполнения в Unix-подобных средах. Современные операционные системы, такие как Linux и macOS, имеют встроенные терминалы командной строки. Благодаря этому они особенно удобны для работы с Git. В Microsoft Windows используется командная строка Windows, отличная от терминала Unix-систем.

В средах Windows система Git часто упаковывается в виде части высокоуровневого приложения с графическим интерфейсом. Графические интерфейсы для Git могут абстрагировать и скрывать базовые компоненты системы контроля версий, которая лежит в основе. Это отличное подспорье для новичков в Git, чтобы они могли быстро внести свой вклад в проект. Но когда требования повышаются и предполагается работа с остальными членами команды, необходимо понимать принципы работы исходных методов Git. Тогда может быть выгодно отказаться от версии с графическим интерфейсом в пользу инструментов командной строки. Интерфейс терминала Git предлагается в приложении Git Bash.

Что такое Git Bash?

Git Bash — это приложение для сред Microsoft Windows, эмулирующее работу командной строки Git. Bash — аббревиатура от Bourne Again Shell. Оболочка (Shell) представляет собой приложение терминала для взаимодействия с операционной системой с помощью письменных команд. Bash — популярная оболочка, используемая по умолчанию в Linux и macOS. Git Bash представляет собой пакет, который устанавливает в операционную систему Windows оболочку Bash, некоторые распространенные утилиты Bash и систему Git.

Установка Git Bash

Git Bash поставляется в составе пакета Git For Windows. Скачайте и установите Git For Windows, как любое другое приложение для Windows. После загрузки найдите входящий в состав пакета файл .exe и откройте его, чтобы запустить Git Bash.

Использование Git Bash

Git Bash поддерживает те же операции, что и стандартная оболочка Bash. Полезно изучить основные примеры использования Bash. Поскольку этот документ посвящен системе Git, расширенные примеры использования Bash здесь не рассматриваются.

Навигация по папкам

Bash-команда pwd используется для вывода пути к текущему рабочему каталогу. Команда pwd эквивалентна выполнению команды cd в терминале DOS (или в консоли Windows). Это папка или путь для текущего сеанса Bash.

Bash-команда ls используется для вывода списка содержимого текущего рабочего каталога. Команда ls эквивалентна команде DIR в консоли Windows.

И оболочка Bash, и консоль Windows поддерживают команду cd. Команда cd представляет собой акроним от «Change Directory» (сменить каталог). Команда cd вызывается с добавлением в качестве аргумента имени каталога. При выполнении команды cd происходит смена текущего рабочего каталога сеанса терминала на каталог, переданный в виде аргумента.

Команды Git Bash

Git Bash поставляется с дополнительными командами, которые можно найти в эмулируемом каталоге /usr/bin. В целом Git Bash предоставляет достаточно функциональную оболочку для Windows. В пакет также входят следующие команды оболочки, рассмотрение которых не входит в задачи текущего документа: ssh, scp, cat, find.

Помимо уже рассмотренного набора команд Bash, пакет Git Bash содержит полный набор основных команд Git, которые рассматриваются на этом сайте. Подробнее см. на соответствующих страницах документации по git clone, git commit, git checkout, git push и другим командам.

Git. Краткое руководство по терминалу

  • Git. Краткое руководство по терминалу
    • Введение
    • Открытие терминала
      • Linux
      • Mac
      • Windows (Git Bash)
      • Первоначальная настройка Git
    • Пути
    • Переменные окружения
    • Автодополнение
    • Ключевые команды
      • Текущий рабочий каталог
      • Смена рабочего каталога
      • Листинг каталога
      • Создание файлов
        • nano
        • Vim
        • VS Code
      • Создание каталогов
      • Перемещение файлов и каталогов
      • Удаление файлов и каталогов
      • На заметку
        • Важность консольных сообщений
        • Выход из программы вывода текста
        • Копирование/вставка
        • «Короткий путь»

Введение

Данное краткое руководство демонстрирует основные команды в терминале Bash:

  • Bash (Linux/Mac)
  • Git Bash (Windows)

Открытие терминала

Первая задача: открыть терминал сразу в нужном каталоге.

Linux

В Linux достаточно щёлкнуть правой кнопкой мыши на каталоге и выбрать пункт меню Open in Terminal или Открыть в терминале:

Mac

В Mac всё немного сложнее, необходимо настроить отображение этого пункта меню в Finder.

Для этого необходимо перейти в Системные настройки, затем пункт меню Клавиатура, в разделе Службы выбрать раздел Файлы и папки и поставить флажок напротив Новый терминал по адресу папки:

После чего при клике правой кнопкой мыши на каталоге появится необходимый пункт меню:

Windows (Git Bash)

В Windows всё достаточно просто — клик правой кнопкой мыши на каталоге и выбор Git Bash Here:

Первоначальная настройка Git

После установки Git первое, что мы сделаем — укажем наши имя и адрес электронной почты. Это важно, потому как этой информацией подписывается каждый коммит (кто сделал изменения и его электронная почта). Для настройки потребуется ввести команды:

$ git config --global user.name "Thorin Oakenshield"
$ git config --global user.email ereborsons@stone.com

Если указана опция --global, настройки применятся глобально, то есть для всех ваших действий в системе Git. Без этой опции настройки применяются локально, для текущего репозитория, и не влияют на глобальные настройки.

Пути

Одно окно терминала подразумевает, что вы можете в один момент времени находиться только в одном каталоге, который называется Current Working Directory (текущий каталог), так же как и в одном открытом окне Nautilus, Finder или проводника Windows.

Вы можете выполнять команды относительно текущего каталога или относительно абсолютного пути.

Абсолютный путь — это путь, начинающийся от корня файловой системы. Корень файловой системы обозначается символом /.

Например, в Git Bash (Windows) абсолютный путь для каталога Program Files, будет чаще всего выглядеть следующим образом: /c/Program Files/.

Для домашнего каталога в Ubuntu (Linux), абсолютный путь будет выглядеть следующим образом: /home/user/, где user — имя пользователя.

Bash (Git Bash в том числе) используют символ / для разделения каталогов.

Ещё два специальных обозначения помимо корня файловой системы:

  • . — обозначает текущий каталог;
  • .. — обозначает родительский каталог.

Важно: в терминале символ (пробел) является символом, разделяющим команды и опции. Поэтому если в пути есть пробел, то варианта два:

  • заключать путь в кавычки, то есть "Program Files";
  • использовать символ backslash для экранирования пробела: Program Files.

Переменные окружения

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

Для вывода содержимого конкретной переменной используется команда echo следующим образом:

Команда printenv позволяет отобразить все переменные окружения:

Видно, что в переменных окружения содержится достаточно много информации о системе.

Автодополнение

В командных оболочках работает автодополнение по клавише Tab:

  • дополняются имена команд;
  • дополняются пути.

Используйте автодополнение, так как оно позволяет сократить время на набор команды.

Ключевые команды

В этом разделе будут описаны ключевые команды, необходимые нам для работы. Естественно, список этот далеко не полный.

Текущий рабочий каталог

pwd — сокращение от «Print Working Directory».

Отображение текущего рабочего каталога:

Смена рабочего каталога

cd — сокращение от «Change Directory».

Переход в определённый каталог:

path может быть как абсолютным, так и относительным путём.

Например, перейти на каталог выше:

Перейти в подкаталог src:

Если перед путём нет слеша — он трактуется как относительный (относительно текущего каталога).

Листинг каталога

ls — сокращение от «List».

Отображает листинг (содержимое каталога):

По умолчанию, ls не отображает файлы, начинающиеся с ., например, .gitignore. Для отображения таких файлов нужно использовать флаг -a:

Создание файлов

Для создания файлов используются специальные программы (например, для создания текстовых файлов — текстовые редакторы).

В рамках рассмотрения Bash мы рассмотрим два текстовых редактора, которые позволят вам создавать и редактировать файлы в псевдографическом режиме.

nano

nano — простой текстовый редактор.

Для того, чтобы создать файл достаточно ввести команду nano и имя файла:

Откроется редактор следующего вида:

Пункты меню в нижней части вызываются с помощью горячих клавиш, где символ ^ обозначает клавишу Ctrl.

То есть чтобы записать файл и выйти следует последовательно нажать Ctrl + O (запись) и Ctrl + X (выход).

Редактор nano установлен в большинстве Unix-подобных операционных системах и Git Bash.

Vim

Редактор Vim (a programmer’s text editor) — профессиональный редактор, позволяющий достичь максимальной производительности при работе с любыми текстовыми файлами. Настолько популярен, что для любой графической среды (IDE, текстовых редакторов вроде VS Code, Atom, Sublime) всегда есть плагин, включающий возможность редактирования кода в режиме «Vim Mode».

На освоение работы в Vim нужно потратить достаточно много времени, для этого вы можете воспользоваться интерактивным учебником vimtutor:

Мы лишь скажем, что для выхода из этого редактора (если вы всё-таки осмелились его открыть) нужно нажать клавишу Esc, затем ввести команду :q! — это позволит вам закрыть открытый файл без сохранения изменений.

VS Code

В видео-лекциях используется VS Code. В Windows вы можете правой кнопкой открыть каталог сразу в VS Code.

В Mac OS и Linux вы можете открыть терминал по адресу папки и в терминале выполнить команду code . &, которая откроет выбранный вами каталог в этом редакторе.

Если ни то, ни другое у вас не получилось, то просто откройте VS Code и через FileOpen откройте нужный каталог.

Создание каталогов

mkdir — сокращения от «Make Directory».

Позволяет создавать каталоги (создаст каталог tmp в текущем каталоге):

Стоит обратить внимание на поведение при создании нового каталога в текущей директории. После команды mkdir name ваше текущее расположение в терминале не изменится. Для того, чтобы работать внутри созданного каталога, в него требуется перейти командой cd name. Это справедливо и при клонировании удалённого репозитория с помощью команды git clone <repo_url>. Полностью склонированный репозиторий создаст каталог в текущей директории с именем проекта, в который нужно перейти командой cd repo_name.

Перемещение файлов и каталогов

mv — сокращение от «Move».

Перемещение (переименование) файлов и каталогов:

Удаление файлов и каталогов

rm — сокращение от «Remove».

Удаление файла:

Удаление непустого каталога:

Для удаления непустого каталога необходимо указать флаги:

  • -r — удалять рекурсивно;
  • -f — не спрашивать подтверждения.

На заметку

Важность консольных сообщений

Git является консольной программой — это значит, что у неё нет графического интерфейса, привычного нам по многим оконным приложениям. Программа будет выводить всю важную информацию о своей работе в окно терминала. Обычно программа «молчит», когда команда выполнена успешно.

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

Внимательно изучая вывод программы, вы сохраняете своё время и понимаете работу программы чуть лучше. Это справедливо для всех консольных приложений.

Выход из программы вывода текста

Бывает, Git пытается нам сказать намного больше, чем умещается в окне терминала. Для этого он пользуется постраничным выводом и когда ему уже нечего выводить появляется метка конца данных (END) или :END. Например, конец вывода команды git log:

Для того чтобы покинуть программу вывода, нужно нажать клавишу q (сокращение от слова «quit» — покинуть) на английской раскладке клавиатуры.

Копирование/вставка

Копирование и вставка из буфера обмена в терминал отличается от тех же действий в обычных текстовых редакторах. Хорошо известная последовательность Ctrl + C и Ctrl + V нужного эффекта не даст. Некоторые последовательности символов зарезервированы в терминале как управляющие, в частности, Ctrl + C служит для прерывания процесса.
Для того чтобы скопировать выделенную область из терминала в буфер обмена, нужно использовать контекстное меню (правая кнопка мышки) или нажать Ctrl + Ins:

Для вставки в поле ввода терминала можно также воспользоваться контекстным меню мышки или зажать Shift + Ins:

Иногда может работать вставка по нажатию на колёсико мышки (средняя кнопка).

«Короткий путь»

Зачастую навигация в терминале сводится к попеременному вводу команд листинга

и, после просмотра содержимого текущей директории, выбору следующей директории.

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

При этом уже набранный текст команды будет на новой строке, а выше мы увидим содержимое следующей директории.

Git Bash is an application that provides Git command line experience on the Operating System. It is a command-line shell for enabling git with the command line in the system. A shell is a terminal application used to interface with an operating system through written commands. Git Bash is a package that installs Bash, some common bash utilities, and Git on a Windows operating system. In Git Bash the user interacts with the repository and git elements through the commands.

What is Git?

  • Git is version-control system for tracking changes in source code during software development.
  • It is designed for coordinating work among programmers, but it can be used to track changes in any set of files.
  • Its goal is to increase efficiency, speed and easily manage large projects through version controlling.
  • Every git working directory is a full-fledged repository with complete history and full version-tracking capabilities, independent of network access or a central server.
  • Git helps the team cope up with the confusion that tends to happen when multiple people are editing the same files.

Installing Git Bash

Follow the steps given below to install Git Bash on Windows: Step 1: The .exe file installer for Git Bash can be downloaded from https://gitforwindows.org/ Once downloaded execute that installer, following window will occur:- Step 2: Select the components that you need to install and click on the Next button. Step 3: Select how to use the Git from command-line and click on Next to begin the installation process. Step 4: Let the installation process finish to begin using Git Bash. To open Git Bash navigate to the folder where you have installed the git otherwise just simply search in your OS for git bash.

Navigate in Git Bash

cd command

cd command refers to change directory and is used to get into the desired directory. To navigate between the folders the cd command is used Syntax:

cd folder_name

ls command

ls command is used to list all the files and folders in the current directory. Syntax:

ls

Set your global username/email configuration

Open Git Bash and begin creating a username and email for working on Git Bash. Set your username:

git config --global user.name "FIRST_NAME LAST_NAME"

Set your email address:

git config --global user.email "MY_NAME@example.com"

Initializing a Local repository

Follow the steps given below to initialize your Local Repository with Git: Step 1: Make a repository on Github Step 2: Give a suitable name of your repository and create the repository Note: You can choose to initialize your git repository with a README file, and further, you can mention your project details in it. It helps people know what this repository is about. However, it’s absolutely not necessary. But if you do initialize your repo with a README file using interface provided by GitHub, then your local repository won’t have this README file. So to avoid running into a snag while trying to push your files (as in step 3 of next section), after step 5 (where you initialize your local folder as your git repository), do following to pull that file to your local folder:

git pull 

Step 3: The following will appear after creating the repository Step 4: Open Git Bash and change the current working directory to your local project by use of cd command. Step 5: Initialize the local directory as a Git repository.

 git init 

Step 6: Stage the files for the first commit by adding them to the local repository

git add .

Step 7: By “git status” you can see the staged files Step 8: Commit the files that you’ve staged in your local repository.

git commit -m "First commit"

Now After “git status” command it can be seen that nothing to commit is left, Hence all files have been committed.

Push files to your Git repository

Step 1: Go to Github repository and in code section copy the URL. Step 2: In the Command prompt, add the URL for your repository where your local repository will be pushed.

git remote add origin repository_URL

Step 3: Push the changes in your local repository to GitHub.

git push origin master

Here the files have been pushed to the master branch of your repository. Now in the GitHub repository, the pushed files can be seen.

Saving changes to local repository

Suppose the files are being changed and new files are added to local repository. To save the changes in the git repository: Step 1: Changes have to be staged for the commit.

git add .

or

git add file_name

Step 2: Now commit the staged files.

git commit -m "commit_name"

Step 3: Push the changes.

git push origin master

New changes can be seen

Branching through Git Bash

Branching in Github

Suppose if a team is working on a project and a branch is created for every member working on the project. Hence every member will work on their branches hence every time the best branch is merged to the master branch of the project. The branches make it version controlling system and makes it very easy to maintain a project source code. Syntax:

  • List all of the branches in your repository.
git branch
  • Create a new branch
git branch branch_name
  • Safe Delete the specified branch
git branch -d branch_name
  • Force delete the specified branch
git branch -D branch_name

Navigating between Branches

To navigate between the branches git checkout is used. To create create a new branch and switch on it:

git checkout -b new_branch_name

To simply switch to a branch

git checkout branch_name

After checkout to branch you can see a * on the current branch Now the same commit add and commit actions can be performed on this branch also.

Merge any two branches

To merge a branch in any branch:

  • First reach to the target branch
git checkout branch_name
  • Merge the branch to target branch
git merge new_branch

Cloning Repository to system

Cloning is used to get a copy of the existing git repository. When you run the git clone command it makes the zip folder saved in your default location

git clone url

This command saves the directory as the default directory name of the git repository To save directory name as your custom name an additional argument is to be passed for your custom name of directory

git clone url custom_name

Undoing commits

When there is a situation when you forget to add some files to commit and want to undo any commit, it can be commit again using –amend Syntax:

git commit --amend

Conclusion

  • To conclude it can be said that git bash is a command line platform which helps in enabling git and its elements in your system.
  • There are a bunch of commands which are used in git bash.
  • Git Bash is very easy to use and makes it easy to work on repositories and projects.

Урок, в котором мы установим git и посмотрим его базовые настройки

Видеоурок. Часть 1. Практика. Установка и настройка git

Видеоурок. Часть 2

  • Система подсказок и помощи Git
  • Локальные настройки
  • Почему первые 2 урока работаем в терминале
  • Почему уроки в Windows
  • Чем git bash отличается от стандартной командной строки
  • Какие утилиты есть кроме git bash
  • Что еще интересного есть на git-scm.com

Конспект урока

Краткое содержание урока, основные инструкции для командной строки, полезные ссылки и советы.

Как установить git

Дистрибутивы и инструкции здесь — https://git-scm.com/downloads

В MacOS и Windows ставится через стандартные установщики, в Linux — командой в терминале.
Например, если работаете в Debian/Ubuntu/Mint, то


    sudo apt install git

Linux или MacOS

Git прекрасно работает в этих ОС и его функционал доступен из терминала (командной строки)

Windows

Git для Windows включает в себя саму утилиту git и инструменты с графическим интерфейсом.
Но есть особенность — при работе в командной строке могут возникнуть проблемы с кириллицей, поэтому мы будем все делать на английском.

Графические инструменты Windows мы рассматривать не будем.
Вместо них воспользуемся популярной IDE от JetBrains — PhpStorm.

Почему в уроках Windows

По одной причине — удобство записи видеоуроков. А так я предпочитаю работать в Linux Mint.

Командная строка

В Linux и Mac запускаем команды git из стандартного терминала. В Windows будем использовать утилиту git bash, которая поставляется вместе с установщиком git под Windows.
Мы будем работать и в терминале, и в PhpStorm, но некоторые вещи проще делать именно в терминале.

Первые 2 урока (установка и репозитории) мы делаем только в терминале, потому что команд мало и они простые.

Базовая настройка git

Проверим корректность установки git, набрав в командной строке


    $ git --version 
    git version 2.7.4

Глобальные настройки git задаются командой


    git config --global parameter "value"

Для начала нас интересуют только 2 настройки: имя и почта, под которыми нас будут видеть сам git и наши коллеги


    git config --global user.name "Aleksandr Shestakov"
    git config --global user.email "webdevkin@gmail.com"

Смотрим все настройки


    $ git config --list
    user.name=Aleksandr Shestakov
    user.email=webdevkin@gmail.com

Глобальные настройки задаются один раз и используются во всех проектах по умолчанию.
Но для каждого проекта можно задать свои настройки — это те же самые команды, но без —global.
Это нужно, если мы работаем на одной машине над личными и рабочими проектами. Тогда для рабочих проектов стоит указать свою почту.

Дружелюбность git

Git очень дружелюбен в плане подсказок в командной строке.

  • git —help — общая документация по git
  • git log —help — документация по конкретной команде (в нашем случае log)
  • Опечатались — git подскажет правильную команду
  • После выполнения команд — краткий отчет, что было сделано
  • git подсказывает, что делать дальше

Конечно, все подсказки на английском.

Что могу посоветовать

  • Работать в Linux или MacOS. В Windows вполне можно работать с git, но иногда бывают проблемы с кириллицей.
    К тому же я не знаю ни одного программиста, кто ушел с Windows и разочаровался в этом
  • На первых порах работать с git в графическом интерфейсе PhpStorm, но пробовать и постепенно переходить на командную строку.
    Работа в терминале поможет лучше понять, как устроен git.
  • Присмотреться к другим оболочкам, например, zsh
  • Не заморачиваться с настройками git config. Базовые мы задали, остальные изучатся по мере необходимости
  • Посмотреть на git-scm.com/downloads/guis,
    там много интересных графических утилит для работы с Git. Но попозже :-)

Еще раз ссылка на загрузку git —
https://git-scm.com/downloads

На этом все. В следующем уроке мы узнаем, что такое репозиторий git, зачем нужны ssh-ключи, а также научимся создавать и клонировать репозитории.

Спасибо за внимание и до встречи!

Все уроки курса

  • Вводный урок
  • 1. Установка и базовая настройка git
  • 2. Создание и клонирование репозитория git
  • 3. Делаем первые изменения, git status и git diff
  • 4. Коммиты и история коммитов, git commit, git log и git show
  • 5. Подробнее об истории коммитов. Путешествие по истории
  • 6. Работа с сервером, git push и git pull
  • 7. Ветки — главная фишка git, git branch и git checkout
  • 8. Работа с ветками на сервере, git fetch
  • 9. Слияния или мерджи веток, git merge
  • 10. Конфликты и их разрешение
  • Платная часть курса. Презентация
  • * 11. Работа с gitignore и git exclude
  • * 12. Буфер обмена git, git stash
  • * 13. Копирование коммитов, git cherry-pick
  • * 14. Отмена и редактирование последнего коммита
  • * 15. Отмена произвольного коммита, git revert
  •    16. Склеивание коммитов, git rebase —interactive и git reflog
  • * 17. Зачем склеивать коммиты. Плюсы и минусы сквоша
  • * 18. Работа с git rebase. Отличия от merge
  • * 19. Что такое git push —force и как с ним работать
  • * 20. Ищем баги с помощью git, git bisect
  • * 21. Как и зачем работать с тегами git
  • * 22. Процессы: github flow и git flow
  • * 23. Псевдонимы в git
  •    24. Мердж-реквесты
  • * 25. Форки

* платные уроки

список обновляется…

Понравилась статья? Поделить с друзьями:

Вот еще несколько интересных статей:

  • Как пользоваться безопасным режимом windows 7
  • Как пользоваться games for windows live
  • Как пользоваться активатором kmsauto windows 10
  • Как пользоваться ftp сервером на windows
  • Как пользоваться акронисом с windows 10

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии