Что такое git bash
Git Bash
По сути 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 Bash поддерживает те же операции, что и стандартная оболочка Bash. Полезно изучить основные примеры использования Bash. Поскольку этот документ посвящен системе Git, расширенные примеры использования Bash здесь не рассматриваются.
Навигация по папкам
Bash-команда pwd используется для вывода пути к текущему рабочему каталогу. Команда pwd эквивалентна выполнению команды cd в терминале DOS (или в консоли Windows). Это папка или путь для текущего сеанса Bash.
Bash-команда ls используется для вывода списка содержимого текущего рабочего каталога. Команда ls эквивалентна команде DIR в консоли Windows.
Команды Git Bash
Готовы изучить Git?
Ознакомьтесь с этим интерактивным обучающим руководством.
Git Blog
Releasing the Power of Git
What is Git Bash?
Evren Tan
This article was written by a guest author.
As a version control system, Git is delivered within Unix style command line methods, and these commands ultimately create the backbone of Git’s software. MacOS & Linux Operating Systems have a built-in terminal shell that supports Unix-based command line features whereas Microsoft Windows Operating System command line prompt is not a Unix-based terminal.
As the Windows command line does not support Unix-based commands, Git CLI features are mostly delivered with user-friendly GUI applications in the Windows Operating System.
These applications provide visual functionalities to the end-user which makes using Git easier. Even some of them, like the GitKraken Git GUI, provide drag-and-drop functionalities for common Git commands, so end-users don’t need to know every single command for managing their code base. This makes life easier for beginners at the very first stages of Git usage.
As Git experience increases, end-users can prefer using Git command line features for specific commands. Git Bash is one tool that provides command line features in the Windows Operating System to end-users. Another tool that developers can use to interact with the command line on Windows is the GitKraken CLI.
Introduction to Git Bash
Git Bash is an application for Microsoft Windows OS environments which provides Unix based shell utilities & experience for Git command line commands.
A shell is a computer application that integrates with the operating system and exposes its services to an end-user or other applications. Bash is an acronym for Bourne Again Shell, which is the GNU Project’s shell.
Git Bash is not just a bash package for Microsoft Windows OS. It includes bash utilities, Unix collections like Secure Shell Protocol (SSH), Secure Copy Protocol (SCP), CAT (Unix utility that reads files sequentially, writing them to standard output), and other Unix-based collections compiled for Windows and Git features.
Git Bash provides a package for Git usage from the command line for Windows users, but the GitKraken Git client will make those same actions faster and more intuitive.
Some things absent from Git Bash that users can enjoy in GitKraken are auto-suggest and auto-complete for Git commands. Just start typing a command in the terminal tab and you will see relevant command suggestions with descriptions. Simply select the command you’re looking for and hit enter to automagically complete the Git action!
GitKraken’s magical auto-complete and auto-suggest for Git commands will help you accelerate your keyboard-driven Git workflow and increase your productivity.
Git Bash Download
Git Bash can be installed as other Windows applications, but you need to first download the executable file from the Git Bash download page and then follow the installation steps.
1. Open your favorite browser and go to the Git Bash Download page on Git-scm.
2. After successfully downloading the Git Bash executable file, follow the installation steps described in the below embedded video. Some hints are also listed in the video for the related installation step.
3. Voilà! Git Bash is ready to be used on your local Microsoft Windows platform.
Using Git Bash with GitHub
In this section, we will look at how to run Git Bash and see some basic Git Bash commands required for Git integration. As Git Bash is a command line utility for Git on the Microsoft Windows platform, a basic Microsoft Windows command prompt (CMD) knowledge will be useful before getting started with Git Bash as they are very similar. If you do not know how to use CMD features, you can just take a look at the Windows Commands Reference from the Microsoft related web site.
Now, let’s look at an example of using Git Bash with GitHub. You will start by linking your GitHub account with Git Bash to start configuring your GitHub repositories. If you do not have a GitHub account, you can create one directly from the GitHub home page.
You can also refer to GitHub Docs for a very large and illustrative documentation about GitHub usage.
Git Bash Commands
Before going into steps on how to configure Git Bash and how to use it, you need to have a repository on GitHub. If this is your first time creating a repository on GitHub, checkout the related GitHub documentation for instructions on how to create a repository on GitHub.
Now, let’s start configuring Git Bash with your GitHub account from scratch (examples in this article will be given from my personal GitHub account).
1. First step is to run Git Bash. Double click the Git Bash icon on your Windows desktop to open your Git Bash interface.
2. Use the cd command to change your active directory with your local repository workspace. cd and chdir in Windows CMD are aliases for setting the active directory.
Now your active directory is your local repository. You can validate your active directory with the pwd command.
3. This step is related to configuring your GitHub email and GitHub username. Type the below commands to link your GitHub email & GitHub username.
a. Now, you can clone the “git-bash-intro” repository to your local workspace. First, get the clone link from your GitHub repository as shown below:
b. Then, type the below command to clone your repository. You will use the clone link that you just copied from your GitHub repository.
There are two important tips while cloning the Git repository. First: if you create a private repository, you also need to have related GitHub permissions. In this Git Bash example, the git-bash-intro repository was initialized as public. You can check the repository visibility section from GitHub Docs for more information about GitHub repository permissions.
Another helpful tip is that you may face the below error while cloning a repository:
fatal: could not create work tree dir ‘git-bash-intro’: permission denied
This error states that you do not start Git Bash with the required permission to execute changes on your local Microsoft Windows platform. You can run Git Bash as administrator to resolve.
4. Next, you will clone a repository to your local workspace will create a folder with the same name as your GitHub repository.
5. Add a new text file called “firstCommit.txt” in your git-bash-intro local repository.
6. It is time to reflect your local changes to your remote GitHub repository. Here, you will need to run a set of commands to push changes to your remote git-bash-intro repository.
Now, let’s check what these git commands mean:
7. Confirm the remote repository is in the GitHub account. Sure enough, the new file “firstCommit.txt” is there!
Now that you have received this Git Bash introduction, you can easily adopt these steps to your own projects as you integrate Git Bash with your GitHub account and use the Git version control system for your code base.
Using GitHub with GitKraken
In comparison to using GitHub with Git Bash, in GitKraken, you can leverage the full power of the robust GitHub integration by simply signing into GitKraken using your GitHub credentials. From there, it’s just a few short steps to generate an SSH key and add to GitHub, and clone or fork a GitHub repository. Learn more about how developers use GitKraken with GitHub for a seamless Git workflow, including creating GitHub pull requests.
GitKraken CLI for Windows
Git Bash is a life saver at this point for Microsoft Windows users who want to use Git command line power for their version control. It is easy to install and start using Git Bash as stated throughout this article.
But if you want a faster, more intuitive CLI experience, use the legendary GitKraken Git client with its powerful visualization tools—like the commit graph, diff view, file history and blame—all accessible right within your Git terminal.
GitKraken has revolutionized Git! Get a keyboard-driven, Git-enhanced terminal experience with powerful visualizations like the commit graph to help you accelerate your workflow.
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 и 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
1234ru / git-bash-win.md
Далее будет рассмотрена работа с portable-версией.
В пакете присутствует не только сам git, но и средства для работы в командной строке, которые позволяют сделать рабочий процесс практически полностью идентичным таковому в Unix-системах. (При этом, в отличие от подсистемы Windows for Linux, нет ни необходимости устанавливать дополнительные компоненты ОС, ни жёстких требований к новизне версии Windows).
В первую очередь, необходимо указать работу в кодировке UTF-8:
Пути файловой системы
, указывающее на домашний каталог пользователя.
Автоматизировать этот процесс можно так:
В результате будет получен полностью готовый к работе терминал с командной оболочкой bash.
Предварительно терминалу Windows обязательно должна быть установлена кодовая страница 65001 (см. предыдущий пункт), иначе редактор будет работать некорректно.
Как правило, необходимо указать имя и email:
Без этого git не даст отправлять изменения в удаленные репозитории ( git push ).
/.ssh/id_rsa (снова точно так же, как в Linux). Он будет использоваться не только при работе git, но и при использовании команды ssh для соединения к удаленным сервером напрямую (которую можно использовать как альтернативу putty).
Такой подход предполагает, что для всех соединений будет использоваться один и тот же ключ.
Странности (то, что работает не так, как в Linux)