Содержание

Что такое Git Bash для Windows?

Фон

Я ОП. Первоначально я хотел просто знать официальное название для этой вещи, которую я использовал.

Теперь я думаю, что имя «Git Bash для Windows». К сожалению, полный ответ сложен, потому что эта вещь на самом деле много вещей.

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

Начало: msysgit

На самом деле, начало, вероятно MSYS, но на самом деле MSYS2. Термин «msysgit» — это хороший термин для поиска, чтобы выяснить, что происходит, когда XYZ работает неправильно; такие вещи, как «где в @ * #! хранятся все настройки autocrlf?!?!?!?»

README ( https://github.com/msysgit/msysgit ) в проекте msysgit объясняет взаимосвязь между компонентами:

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

Он поставляется с Bash (оболочкой типа Unix), с интерпретатором Perl и с исполняемым файлом Git и его зависимостями.

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

Цель проекта MinGW — предоставить способ компиляции собственных двоичных файлов Windows без слоя POSIX с использованием компилятора GNU C.

Однако, по крайней мере, Bash нужен слой POSIX (особенно из-за отсутствия fork()вызова в Windows). Поэтому добавляется MSYS (

минимальная система ), предлагающая минимальную систему, необходимую для обеспечения функциональности Bash (и Perl) в Windows.

Следовательно, MSYS поставляется со слоем POSIX (на основе старой версии Cygwin), который используется только Bash и Perl, но не компилируется в этой среде.

Кстати, на случай, если полный README будет удален, я скопировал его в суть .

Другая часть Git Bash для Windows — это настоящая командная строка Windows, mintty. Слава Богу, это существует, но это не то, что мне нужно, чтобы Google.

Их вики — настоящий кладезь подробностей о среде MSYS2: https://github.com/msys2/msys2/wiki

Во введении эта часть наиболее актуальна для моего исходного вопроса:

MSYS2 состоит из трех подсистем и соответствующих им репозиториев пакетов msys2, mingw32и mingw64.

Это обсуждение также очень полезно: https://sourceforge.net/p/msys2/discussion/general/thread/dcf8f4d3/#8473/588e

Разница между Git GUI, Git Bash, Git CMD



В чем разница между Git GUI , Git Bash и Git CMD ? Я новичок, и для выполнения своих установок я обычно использую как git bash, так и git CMD

git bash cmd
Поделиться Источник Rim     11 июля 2017 в 12:23

3 ответа


  • Как открыть Git Bash из Git Gui?

    В Windows, есть ли способ открыть Git Bash из репозитория, открытого в настоящее время с помощью Git Gui?

  • Что делает ввод «cmd» в Git Bash?

    Я новичок в Git и следил за учебниками на веб-сайте git-scm , я набрал cmd в строке ввода в Git Bash, и все цвета исчезли, и это похоже на обычную командную строку.

    Когда я набрал input git status , он возвращается с информацией. Однако, когда я запускаю обычную командную строку и перемещаюсь в…



88

Git CMD-это точно так же, как обычная командная строка Windows с командой git . Он позволяет использовать все функции Git через командную строку. Полезно, если вы уже знакомы с Windows cmd и работаете только с Windows.

Git Bash эмулирует среду bash на windows. Он позволяет использовать все функции git в командной строке плюс большинство стандартных команд unix . Полезно, если вы привыкли к Linux и хотите сохранить те же привычки.

Git GUI-это графический интерфейс U ser I nterface, позволяющий использовать Git, не касаясь командной строки. Это альтернатива среди других клиентов Git. Поскольку Git GUI очень минимален, вы также можете посмотреть на другие альтернативы , если GUIs вас заинтересует.

Это до вас, чтобы решить, что вы хотите использовать. Как и многие другие, я рекомендую вам изучить Git с командной строкой, прежде чем переключаться на графический интерфейс. Если вы не знаете, что выбрать между Git Bash и Git CMD, я бы выбрал Git Bash, поскольку bash-действительно полезный инструмент для обучения.

Поделиться Winter     11 июля 2017 в 13:31



17

В чем разница между GIT GUI, GIT BASH и GIT CMD?

Кто-то уже задавал этот вопрос в Кворе.

Git Bash :

Bash-это Unix shell и командный язык, а также по умолчанию shell на Linux (Ubuntu и т. д.) и OS X. В терминах непрофессионалов, git, который работает на terminal любого устройства Linux, известен как git bash.

Git CMD :

(Строка командной строки)-это интерпретатор командной строки в операционных системах Windows.

Что-то вроде эквивалента плохой задницы terminal в Linux, когда вы устанавливаете git на windows и вы привыкли к используя командную строку, можно использовать cmd для выполнения команд git.

Нет никакой разницы, когда речь заходит о командах git, когда вы используете любую из вышеперечисленных команд. Я бы предпочел terminal вместо cmd в любой день, но если вам нравится Windows по обычным причинам, я использовал Cygwin, чтобы дать мне terminal, как чувство на Windows.

Git GUI :

По сути, он нацелен на людей, которым не нравится кодирование на черных экранах a.k.a командной строки. Он предоставляет графический пользовательский интерфейс для запуска команд git, которые вам нравятся, например. Если вы фиксация(коммит) некоторых изменений из локального репозитория в промежуточный очередь, вам просто нужно будет нажать кнопку, чтобы зафиксировать изменения , в то время как команда git-это ‘git commit-m «»

Я думаю, что это достаточно ясно для вашего вопроса.

Поделиться GeneGi     11 июля 2017 в 12:44



3

Git — это система контроля версий Version Control System

Git Bash — это Bash на основе Terminal, [ Bash-это Unix на основе Terminal], что просто означает, что пользователь может непосредственно использовать Unix команд в этом Bash terminal

Git GUI — используется для on system как IDE если у вас нет IDE или вы хотите работать в среде Github, но в автономном режиме, то Git GUI полезен. Если вы используете редакторы VScode или Sublime, то теперь они добавили плагин для команд Git . Так что это также вариант для вас, а не установка Git GUI

Git CMD deprecated — в основном используется пользователями Windows, поскольку он также имеет некоторые функции команд Git, которые пользователь может использовать непосредственно, что является проблемой при использовании командной строки Windows [CMD].

Лучшее применение системы контроля версий Git-это Github

Руководство по Github

О —— Bash

Git GUI

Git Bash

Git CMD

Поделиться champion-runner     06 ноября 2019 в 08:30


  • CMD команда для «Git Bash здесь»

    В Windows я могу запустить Git Bash Here в текущем каталоге, открыв меню правой кнопкой мыши. Я хочу поместить gitbashhere.bat в путь по умолчанию, чтобы команды получили легкий доступ из стандартного окна cmd. Команда sh.exe —login -i открывает только git bash в каталоге sh.exe’s вместо текущего…

  • Есть ли способ настроить мою личность изнутри Git-Gui, а не Git-CMD?

    Есть ли способ настроить мою личность изнутри Git-Gui, вместо того чтобы проходить через Git-CMD? Я знаю, как это сделать через CMD, как он буквально говорит вам.

    Мне просто интересно, нужно ли мне использовать CMD. Когда я впервые попытался объединить что-то с GUI, он попросил меня бежать: git…


Похожие вопросы:


Как отсоединить «git gui» начатый в «Git bash» от Windows?

Например, Я начинаю git bash; Я navitage в определенный каталог; Я начинаю git gui& ; Я закрываю окно консоли или нажимаю Ctrl+C. Git-окно gui исчезает. Даже если бы я использовал git…


Разница между git diff (патч git) и git push

git push используется для отправки изменений в удаленный репозиторий. git diff показывает все изменения, внесенные с момента последней операции извлечения из удаленного хранилища. git diff…


Почему Git Bash называется bash?

Почему Git Bash называется bash? Есть ли действительно такая большая связь между git shell и unix shell? Например, когда Git Bash используется на Windows, я не верю, что многие команды Unix поняты.


Как открыть Git Bash из Git Gui?

В Windows, есть ли способ открыть Git Bash из репозитория, открытого в настоящее время с помощью Git Gui?


Что делает ввод «cmd» в Git Bash?

Я новичок в Git и следил за учебниками на веб-сайте git-scm , я набрал cmd в строке ввода в Git Bash, и все цвета исчезли, и это похоже на обычную командную строку. Когда я набрал input git status ,…


CMD команда для «Git Bash здесь»

В Windows я могу запустить Git Bash Here в текущем каталоге, открыв меню правой кнопкой мыши. Я хочу поместить gitbashhere.bat в путь по умолчанию, чтобы команды получили легкий доступ из…


Есть ли способ настроить мою личность изнутри Git-Gui, а не Git-CMD?

Есть ли способ настроить мою личность изнутри Git-Gui, вместо того чтобы проходить через Git-CMD? Я знаю, как это сделать через CMD, как он буквально говорит вам. Мне просто интересно, нужно ли мне…


«Git bash здесь» и «Git GUI here» не работает на Windows 10

Я только что установил Git для Windows версии 2. 18.0 64-bit на новую машину Windows 10 (Win 10 Enterprise). Когда я щелкаю правой кнопкой мыши в explorer и выбираю Git Bash здесь или Git Gui здесь,…


Есть ли разница между git checkout HEAD — . и git reset —твердая голова?

Я взглянул на эту ссылку stackoverflow, но я думаю, что тонкая разница между тем, что я спрашиваю, заключается в использовании HEAD в checkout cmd, поскольку их предложения, похоже, не работают :…


Как установить git на Windows 10 без Git Bash или GUI?

Я пытаюсь установить Git на Windows 10, но без Git Bash или GUI. Я хочу использовать Git в PowerShell и не хотел бы раздувать свой PC. Я знаю, что размер установки невелик, но это не проблема. Я…

Что же такое Git Bash для Windows?

Вы правы, Git Bash для Windows — это не только bash , скомпилированный для Windows. Это пакет, содержащий bash (это командная строка ) и коллекция других, отдельных утилит nix, таких как ssh , scp , cat , find и другие (которые вы запускаете с помощью оболочки), скомпилированные для Windows, и новое окно терминала интерфейса командной строки, называемое mintty .

В Windows вы можете запускать команды, например ipconfig /all или format G: , используя cmd.exe . Эти команды являются фактическими исполняемыми файлами в C:\Windows\system32 , хранящимися как ipconfig.exe и format.com файлов. cmd.exe отделяется от обоих и загружает их и запускает их по запросу пользователя.

ssh , scp , cat , find запускаются с использованием bash точно так же. Они обычно хранятся в /usr/bin , а не в C:\Windows\system32 on * nix системах, потому что Windows и * nix имеют структуру системной файловой системы, организованную по-разному.

В случае Git Bash для Windows эти программы находятся в папке установки Git: C:\Program Files\Git\usr\bin , которая также может быть найдена в эмулированной среде Linux в /usr/bin .

Точно так же, как просто запустить cmd. exe on * nix не позволяет вам делать многое без использования других системных утилит, просто быть в состоянии запустить Bash на Windows тоже не очень полезно. Это означает, что все эти дополнительные команды должны быть объединены вместе с Bash для создания полезного программного пакета.

Обычно эти дополнительные команды будут найдены в системах * nix, а не в Windows, потому что они были запрограммированы против API программирования POSIX (что и использует * nix), а не API Win32 (что и использует Windows) , Документация API POSIX открыта, поэтому некоторые люди портировали ее на другие системы, включая Windows. Windows-реализация API / библиотек POSIX предоставляется Cygwin и MSYS .

Это похоже на то, что делает Винный проект , но он преобразует POSIX- > Windows, а не Windows- > POSIX, например, Wine.

mintty включено, потому что cmd.exe , окно командной строки Windows по умолчанию, не содержит некоторых важных функций, которые обычно доступны в большинстве систем * nix. В большинстве случаев mintty — лучший выбор для запуска команд (конечно, для утилит, поставляемых с пакетом Git Bash для Windows), но иногда системное приложение Windows может работать лучше с cmd.exe .

    

Git для начинающих. Часть 2. Установка Git

Для того, чтобы начать работать с системой контроля версий Git ее необходимо предварительно установить. Рассмотрим варианты установки этой VCS под MS Windows и Linux.

Установка Git под Windows

Для установки Git под Windows необходимо предварительно скачать дистрибутив. Для этого перейдите на страницу https://git-scm.com/

Если вы зашли из под операционной системы (ОС) Windows, главная страница сайта будет выглядеть примерно так, как показано на рисунке ниже. Для других ОС отличие будет заключаться в том, что изменится область для скачивания дистрибутива (см. правый нижний угол).

Для того чтобы скачать Git нужно нажать на кнопку Downloads for Windows, расположенную в правой части окна.

Процесс дальнейшей установки Git выглядит так.

1. Запустить установочный файл

2. Ознакомиться, если есть желание, с лицензионным соглашением и нажать на кнопку Next

3. Выбрать компоненты, которые следует установить

4. Указать способ использования Git

В этом окне доступны три возможных варианта:

  • Use Git from Git Bash only

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

  • Use Git from the Windows Command Prompt

В этом случае происходит минимальная модификация переменной окружения PATH, которая позволит работать с Git через командную стоку Windows. Работа через Git Bash также возможна.

  • Use Git and optional Unix tools from the Windows Command Prompt

В переменную PATH вносится значительное количество модификаций, которые позволят, в рамках командной строки Windows, использовать как Git так и утилиты Unix, которые поставляются вместе с дистрибутивом Git.

Наша рекомендация: опция Use Git from the Windows Command Prompt.

5. Настройка правил окончания строки

Существует два варианта формирования конца строки в текстовых файлах – это Windows стиль и Unix стиль. Данное окно позволяет выбрать одну из опций, определяющих правило формирования окончания строки:

  • Checkout Windows-style, commit Unix-style line endings

Checkout (операция извлечения документа из хранилища и создания рабочей копии) производится в Windows стиле, а commit (операция отправки изменений в репозиторий) в Unix стиле.

  • Checkout as-is, commit Unix-style line endigns

Checkout производится в том формате, в котором данные хранятся в репозитории, а commit осуществляется в Unix стиле.

  • Checkout as-is, commit as-is

Checkout и commit производятся без дополительных преобразований.

Наша рекомендация: опция Checkout Windows-style, commit Unix-style line endings.

6. Выбор эмулятора терминала, который будет использован с Git Bash

Возможен выбор из двух вариантов:

  • Use MinTTY (the defaul terminal of MSYS2)

Git Bash будет использовать в качестве эмулятора терминала MinTTY.

  • Use Windows’ default console window

Git будет использовать Windows консоль (“cmd.exe”).

Наша рекомендация: опция Use MinTTY (the defaul terminal of MSYS2).

7. Настройка дополнительных параметров

Доступны следующие параметры:

  • Enable file system caching

Включение операции кэширования при работе с файлами. Эта опция позволит значительно повысить производительность.

  • Enable Git Credential Manager

Предоставляет возможность работы с защищенным хранилищем.

Активирует работу с символьными ссылками.

Наша рекомендация: опции Enable file system caching и Enable Git Credential Manager.

8. Завершение установки

После нажатия на кнопку Install будет произведена установка Git на Windows, по окончании установки пользователь получит соответствующее сообщение.

Установка Git под Linux

Для установки Git под Linux, также необходимо зайти на сайт  https://git-scm.com/ и перейти в раздел Downloads. В зависимости от используемой вами версии операционной системы Linux необходимо выбрать тот или иной способ установки Git.

Debian/Ubuntu

> apt-get install git

Fedora
(Fedora 21)

> yum install git

(Fedora 22)

> dnf install git

Gentoo

> emerge --ask --verbose dev-vcs/git

Arch Linux

> pacman -S git

openSUSE

> zypper install git

Mageia

> urpmi git

FreeBSD

> pkg install git

Solaris 9/10/11 (OpenCSW)

> pkgutil -i git

Solaris 11 Express

> pkg install developer/versioning/git

OpenBSD

> pkg_add git

Alpine

> apk add git

Рекомендуем классный курс по git от GeekBrains, перейдите по ссылке и найдите в разделе “Курсы” курс “Git. Быстрый старт”. Это бесплатный видеокурс, зарегистрируйтесь и начинайте получать новые знания.


<<< Git для начинающих. Часть 1. Что такое системы контроля версий?

Git для начинающих. Часть 3. Настройка Git>>>

Основы Git — 2. Основы трансляции

Внизу документа прикреплены презентации по Git из замечательной книги Pro Git

Установка Git¶

В данной инструкции описывается работа с Git в Bash shell. Это такая терминальная среда или просто говоря командная строка. Все описанные ниже команды работают как в Linux, так и в Shell для Windows.

Сперва нужно установить Git, если он еще не установлен на вашем ПК. В Linux для этого открываем терминал и выполняем (знак $ копировать не надо — это просто обозначение команд терминала):

$ sudo apt-get install git
В случае с Windows необходимо несколько больше манипуляций. Git необходимо скачать и установить. Есть два варианта установки Git:
  1. Первый (более предпочтительный способ, т.к. избавляет от многих проблем с навигацией по папкам) это непосредственно обычная установка
  2. Второй — воспользоваться переносной версией Git, но с потерей некоторого удобного функционала.

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

Устанавливается Git для Windows из проекта http://git-scm.com/download/win. При установке оставляем все параметры по умолчанию. Единственное, необходимо проследить, чтобы при установке была включена опция «Git Bash here». Это даст возможность запускать Git bash из Проводника прямо в необходимой вам папке. Иначе придется осуществлять навигацию через сам Git bash, что может быть неудобно неопытным пользователям компьютера.

Теперь, чтобы приступить к работе с Git, необходимо в Проводнике Windows кликнуть правой кнопкой мыши по папке с вашим проектом, который вы хотите добавить в версионный контроль, и выбрать опцию Git bash here:

Другим вариантом получить Git является Git for Windows Portable. Он скачивается по той же ссылке, что и обычный Git. В этом случае устанавливать ничего не надо. Достаточно распаковать архив в удобную для вас директорию (желательно ближе к корню диска и чтобы весь путь к папке имел только латинские символы), а затем запустить в этой директории файл git-bash.exe

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

Дальнейшая работа уже ничем различается в разных операционных системах (ОС), поскольку будет использоваться консоль Shell, которая во всех ОС одинаковая.

Далее работаем в открывшемся терминале Git bash. После установки Git-у надо сообщить свое имя и email, поскольку без этой информации вы не сможете делать коммитов, т.к. каждый коммит (версия вашего проекта в определенный момент времени) должен содержать в себе автора этого коммита. Делается это также в терминале следующим образом:

$ git config --global user.name "Your name" 
$ git config --global user. email [email protected]

Навигация и работа в терминале¶

Здесь стоит сказать несколько слов о способах навигации и базовых принципах работы с консолью в Git bash. Для перемещения между папками используется стандартная команда cd. Ее аргументом является либо папка, куда мы хотим переместиться, либо специальные символы. Путь к папке указывается относительным или абсолютным путем. Наиболее часто используются следующие два символа: ~ означает переход в домашнюю директорию пользователя, а .. означает переход на один уровень вверх по иерархии директорий.

$ cd ~   # Переход в домашнюю директорию пользователя
$ cd /   # Переход в корневую директорию
$ cd ..  # Переход из текущей папки на один уровень выше
$ cd project_dir  # Переход из текущей папки в папку с именем project_dir
$ cd ../project_dir  # Сначала переходим на один уровень выше, а потом заходим в папку project_dir

Обратите внимание, что для навигации используются обычные прямые слэши /, а не обратные \ как в Windows.

Прежде чем перемещаться в папки было бы неплохо знать содержимое текущей директории. Для этого используется команда ls. Ниже приводятся примеры ее использования.

$ ls   # Показать содержимое текущей папки
$ ls -la  # Используются специальные ключи l - показать в виде списка со свойствами, a - показать также скрытые файлы
$ ls project_dir  # Показать содержимое папки project_dir

Кстати, в Git bash есть удобный автокомплит. Если вы начали вводить команду или адрес в консоль и нажимаете клавишу tab, то консоль подставляет наиболее подходящую недостающую часть команды или адреса. Чтобы вставить в консоль скопированный текст, можно просто нажать в консоли средней кнопкой мыши. Чтобы выбрать какую-то старую команду, то можно сделать это клавишей up. Чтобы просмотреть всю историю команд в консоли используется команда history.

Думаю неплохо было бы объяснить понятия домашней и корневой директорий. Для пользователей Windows это довольно сложно к восприятию. Домашняя директория это папка пользователя, которая создается ОС и к ней имеет полный доступ только сам пользователь. В Windows по умолчанию это папка C:\Users\NameOfUser. Разумеется NameOfUser должно заменяться именем вашего пользователя. Собственно говоря, обычно (но не всегда) Git bash именно C:\Users\NameOfUser определяет как домашнюю директорию. Здесь все просто. Корневая директория представляет папку в которую устанавливается ОС Linux. Обозначается она одинарным слэшом /. В Git bash это просто папка, куда установлен сам Git bash.

Поэтому, исходя из вышесказанного, если вы заблудились в навигации Git bash, то можно предложить следующий простой алгоритм действий:

$ cd ~    # Перемещаемся в домашнюю директорию
$ pwd     # Узнаем адрес текущей директории, чтобы точно знать что Git bash подразумевает под домашней директорией
$ ls -l   # Проверяем содержимое директории, чтобы убедиться в своей правоте
$ cd dir  # Начинаем перемещаться по иерархии папок

Если необходимо создать директорию, то используется команда mkdir:

$ mkdir dir_name   # Создаем папку с именем dir_name

Здесь можно еще добавить, что если вам необходимо создать новый пустой текстовый файл, то можно воспользоваться следующей командой:

$ touch new.html

Работа в Git¶

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

Теперь мы можем непосредственно приступить к версионному контролю вашего проекта. Сначала заходим в папку с проектом и выполняем команду инициализации пустого репозитория (если еще не создавали):

$ cd project_dir
$ git init

Кроме того, вы можете не инициализировать репозиторий, а склонировать готовый (адрес которого указан в настройках вашего проекта) и уже туда скопировать файлы вашего проекта:

$ git clone ssh://[email protected]/name-of-repository.git

Адрес репозитория по умолчанию вы можете найти на главной странице вашего проекта на сайте в секции «Main Git Repository»:

Затем индексируем файлы, находящиеся в проекте, чтобы подготовить их к коммиту:

$ git add .

По умолчанию точка в конце команды add означает, что все измененные с предыдущей версии кода файлы будут добавлены в следующую версию. Чтобы посмотреть список обновляемых файлов выполните команду:

$ git status

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

$ git commit -m "Init new project" 

Атрибут -m означает, что мы пишем комментарий к коммиту в теле самой команды. Разумеется, комментарии от коммита к коммиту должны изменяться. Если запустить git commit без -m, то запуститься текстовый редактор vim, где вам необходимо будет написать этот комментарий. Так что не отвертишься. Кстати, рекомендуется писать комментарии к коммиту как можно более подробно, чтобы потом при чтении истории проекта не возникало вопросов, что же вы делали в субботу вечером.

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

$ git log

Или в более удобном виде:

$ git log --pretty=format:"%h - %an, %ar : %s" 

Как переключаться между коммитами и создавать ветви¶

Для того, чтобы переключиться к более старой версии кода необходимо найти хеш идентификатора коммита в истории проекта. Посмотреть его можно в комманде $git log, как было описано выше. Для переключения на необходимый коммит используется команда:

$ git checkout commit

commit — первые 4 (или более) символа контрольной суммы SHA-1, увидеть можно с помощью команды $git log. Постарайтесь ничего не изменять в проекте после переключения на более старый код, т.к. здесь требуется комбинация довольно хитрых шагов, без выполнения которых вы рискуете поломать репозиторий. Используйте такое переключение только для того, чтобы ознакомиться со старым кодом. Чтобы переключиться обратно на последний коммит, достаточно указать той же команде текущую ветку разработки:

$ git checkout master

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

$ git branch iss53
$ git checkout iss53

Первая команда создает ветвь, вторая переключает на нее. В параллельной ветви мы можем делать различные изменения, которые пока что не затронут нашу главную ветвь master. Делается это для удобства программиста и для того, чтобы случайно не сломать что-нибудь в ветви master.

Когда мы закончили изменения в новой ветви iss53, то чтобы влить эти изменения обратно в master необходимо сначала переключиться, а затем выполнить команду слияния ветвей:

$ git checkout master
$ git merge iss53

Теперь изменения из iss53 попали в master.

После настройки Git вы можете перейти к настройке удаленного репозитория, как описано в статье Управление репозиториями.

Шпаргалка по Git, в которой представлены основные команды

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

git add

Команда git add добавляет содержимое рабочей директории в индекс (staging area) для последующего коммита. По умолчанию git commit использует лишь этот индекс, так что вы можете использовать git add для сборки слепка вашего следующего коммита.

git status

Команда git status показывает состояния файлов в рабочей директории и индексе: какие файлы изменены, но не добавлены в индекс; какие ожидают коммита в индексе. Вдобавок к этому выводятся подсказки о том, как изменить состояние файлов.

git diff

Команда git diff используется для вычисления разницы между любыми двумя Git деревьями. Это может быть разница между вашей рабочей директорией и индексом (собственно git diff), разница между индексом и последним коммитом (git diff --staged), или между любыми двумя коммитами (git diff master branchB).

git difftool

Команда git difftool просто запускает внешнюю утилиту сравнения для показа различий в двух деревьях, на случай если вы хотите использовать что-либо отличное от встроенного просмотрщика git diff.

git commit

Команда git commit берёт все данные, добавленные в индекс с помощью git add, и сохраняет их слепок во внутренней базе данных, а затем сдвигает указатель текущей ветки на этот слепок.

git reset

Команда git reset, как можно догадаться из названия, используется в основном для отмены изменений. Она изменяет указатель HEAD и, опционально, состояние индекса. Также эта команда может изменить файлы в рабочей директории при использовании параметра --hard, что может привести к потере наработок при неправильном использовании, так что убедитесь в серьёзности своих намерений прежде чем использовать его.

git rm

Команда git rm используется в Git для удаления файлов из индекса и рабочей директории. Она похожа на git add с тем лишь исключением, что она удаляет, а не добавляет файлы для следующего коммита.

git mv

Команда git mv — это всего лишь удобный способ переместить файл, а затем выполнить git addдля нового файла и git rm для старого.

git clean

Команда git clean используется для удаления мусора из рабочей директории. Это могут быть результаты сборки проекта или файлы конфликтов слияний.

git branch

Команда git branch — это своего рода “менеджер веток”. Она умеет перечислять ваши ветки, создавать новые, удалять и переименовывать их.

git checkout

Команда git checkout используется для переключения веток и выгрузки их содержимого в рабочую директорию.

git merge

Команда git merge используется для слияния одной или нескольких веток в текущую. Затем она устанавливает указатель текущей ветки на результирующий коммит.

git mergetool

Команда git mergetool просто вызывает внешнюю программу слияний, в случае если у вас возникли проблемы слияния.

git log

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

git stash

Команда git stash используется для временного сохранения всех незакоммиченных изменений для очистки рабочей директории без необходимости коммитить незавершённую работу в новую ветку.

git tag

Команда git tag используется для задания постоянной метки на какой-либо момент в истории проекта. Обычно она используется для релизов.

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

git fetch

Команда git fetch связывается с удалённым репозиторием и забирает из него все изменения, которых у вас пока нет и сохраняет их локально.

git pull

Команда git pull работает как комбинация команд git fetch и git merge, т.е. Git вначале забирает изменения из указанного удалённого репозитория, а затем пытается слить их с текущей веткой.

git push

Команда git push используется для установления связи с удалённым репозиторием, вычисления локальных изменений отсутствующих в нём, и собственно их передачи в вышеупомянутый репозиторий. Этой команде нужно право на запись в репозиторий, поэтому она использует аутентификацию.

git remote

Команда git remote служит для управления списком удалённых репозиториев. Она позволяет сохранять длинные URL репозиториев в виде понятных коротких строк, например «origin», так что вам не придётся забивать голову всякой ерундой и набирать её каждый раз для связи с сервером. Вы можете использовать несколько удалённых репозиториев для работы и git remote поможет добавлять, изменять и удалять их.

git archive

Команда git archive используется для упаковки в архив указанных коммитов или всего репозитория.

git submodule

Команда git submodule используется для управления вложенными репозиториями. Например, это могут быть библиотеки или другие, используемые не только в этом проекте ресурсы. У команды submodule есть несколько под-команд — addupdatesync и др. — для управления такими репозиториями.

git show

Команда git show отображает объект в простом и человекопонятном виде. Обычно она используется для просмотра информации о метке или коммите.

git shortlog

Команда git shortlog служит для подведения итогов команды git log. Она принимает практически те же параметры, что и git log, но вместо простого листинга всех коммитов, они будут сгруппированы по автору.

git describe

Команда git describe принимает на вход что угодно, что можно трактовать как коммит (ветку, тег) и выводит более-менее человекочитаемую строку, которая не изменится в будущем для данного коммита. Это может быть использовано как более удобная, но по-прежнему уникальная, замена SHA-1.

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

git bisect

Команда git bisect — это чрезвычайно полезная утилита для поиска коммита в котором впервые проявился баг или проблема с помощью автоматического бинарного поиска.

git blame

Команда git blame выводит перед каждой строкой файла SHA-1 коммита, последний раз менявшего эту строку и автора этого коммита. Это помогает в поисках человека, которому нужно задавать вопросы о проблемном куске кода.

git grep

Команда git grep используется для поиска любой строки или регулярного выражения в любом из файлов вашего проекта, даже в более ранних его версиях.

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

Другие материалы по теме:

https://proglib.io/p/git-github-gitflow/

https://proglib.io/p/system-git/

Книга по Git

Официальные видео уроки по Git

Путешествие в мир Linux и Git / Блог компании RUVDS.com / Хабр

Во время пандемии я, честно говоря, не собиралась изучать Linux, не думала, что умение работать в этой ОС сделает меня продуктивнее. Но, как оказалось, Linux-навыки, и правда, помогают мне быстрее справляться с делами. Всё началось с того, что мне посоветовали «взглянуть на Linux». Я тогда подумала, что делать мне, всё равно, нечего, да ещё и сентябрьский выпуск #IBelieveinDoing оказался как раз о Linux.

Я почувствовала, что всё у меня получится, и отправилась в путешествие по миру Linux. В том выпуске #IBelieveinDoing были уроки не только по Linux, но и по Git. Между этими системами можно провести некоторые параллели. Linux — это опенсорсная ОС, которой пользуются программисты, а Git — это система управления версиями, которую применяют для отслеживания изменений в исходном коде при разработке программ. Надо отметить, что изучение Linux и Git оказалось весьма увлекательным занятием. Но Git — довольно сложная система, поэтому и освоить её основы было тяжелее, чем основы Linux.

В этом материале я хочу поделиться с вами тем, что узнала, осваивая Linux и Git.

Основные команды Linux


pwd: эта команда применяется для вывода сведения о рабочей директории.

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

cd: данная команда предназначена для смены каталога.


Эксперименты с командами Linux

cp: эта команда предназначена для копирования файлов и папок.

mv: с помощью данной команды можно переименовывать или перемещать файлы и папки.

touch: эта команда применяется для создания пустых файлов и для изменения временной метки файлов.

cat: данная команда позволяет просматривать содержимое файлов, с её помощью можно создавать копии файлов, присоединять содержимое одних файлов к другим.

tree: эта команда позволяет выводить сведения о директориях в древовидном формате. Команда, по умолчанию, выводит сведения о папках и файлах и информацию о количестве файлов и папок в выведенной ей структуре. Вот пример её использования


Пример использования команды tree

Здесь имена папок выделены синим цветом, имена файлов имеют белый цвет. В структурах, выводимой этой командой, используются и другие цвета.

echo: эта команда применяется для вывода передаваемых ей данных на экран.

grep: данная команда предназначена для работы с текстовыми данными. В частности, она позволяет выполнять поиск строк.

tail: с помощью этой команды можно вывести 10 последних строк файла.


Примеры использования команд grep и cat

awk: эта команда предназначена для работы с соответствующей утилитой, которая даёт в наше распоряжение мощные средства по обработке строк, возможности которых сравнимы с возможностями, имеющимися в полноценных языках программирования.

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


Пример использования конвейера

ssh: данная команда позволяет работать с ssh-клиентом, который используется для подключения к удалённым системами и для выполнения команд на них. Протокол SSH направлен на организации безопасного взаимодействия компьютеров.

rm: эта команда используется для удаления файлов и папок. Например, её вызов в виде rm file приводит к удалению файла, а в виде rm -r directory — к удалению директории и всего её содержимого.

Структура директорий Linux


В Linux используется древовидная структура директорий. Начало этой иерархической структуры находится в корневой директории. В эту директорию вложены все остальные директории. Для разделения имён директорий при указании путей к файлам и папкам используется прямая косая черта (/).

Вот как может выглядеть структура файловой системы в Linux-системе.


Структура директорий в Linux

Вот — характеристика некоторых важных папок.


Абсолютная и относительная адресация


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

Относительные пути задаются относительно текущей директории.


Эксперименты по работе с путями

Существуют особые относительные пути, сведения о которых приведены в следующей таблице.



Примеры использования особых относительных путей

Мягкие и жёсткие ссылки на файлы


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

Жёсткая ссылка представляет собой ссылку на то место жёсткого диска, где расположен файл. Система считает файл существующим до тех пор, пока есть хотя бы одна жёсткая ссылка на него. Фактически, если у файла есть несколько жёстких ссылок, это можно сравнить с тем, что у файла есть несколько имён.

Для создания жёстких и мягких ссылок на файлы используется команда ln. Вот пример создания с её помощью символической ссылки:

ln -s /path/to/file linkname

Управление поведением команд


Поведением команд Linux можно управлять, передавая им при их вызове аргументы (ключи, опции, флаги) командной строки. Они обычно выглядят как дефис (-), за которым идёт однобуквенное имя ключа (такая конструкция может выглядеть, например, как -a). Они могут выглядеть и как два дефиса (--), за которыми идёт более длинное имя ключа (вроде --all).

Для того чтобы выяснять подробности о командах Linux, можно воспользоваться встроенной справочной системой, доступ к которой осуществляется посредством команды man. Например, для получения справки по команде ls можно воспользоваться командой man ls. Ниже показан результат работы подобной команды.


Справка по команде ls

Справочные страницы команд включают в себя несколько разделов. Среди них можно отметить следующие:

  • NAME (имя). Тут содержится имя команды и краткое описание того, что она делает.
  • SYNOPSIS (сводка по синтаксису команды). Здесь показана схема использования команды.
  • DESCRIPTION (описание). В этом разделе приводится подробное описание команды и поддерживаемых ей ключей командной строки.

Например, команда ls часто используется с ключом -l, который позволяет вывести подробные сведения о содержимом директории.
Использование команды ls -l

На предыдущем изображении вы могли заметить конструкции вида drwxr-xr-x. Это — описание прав доступа к файлам.

Права доступа к файлам


Предположим, у нас есть следующая конструкция, описывающая права доступа к файлу:
- rwx r-- r--

Обратите внимание на то, что в ней можно выделить четыре группы символов:
  1. Первый символ указывает на то, с чем именно мы имеем дело. А именно, если здесь стоит знак (-), то перед нами — файл. Буква (d) указывает на директорию. Буква (l) — на ссылку.
  2. Три следующих символа позволяют узнать о том, какими разрешениями по работе с данным файлом обладает его владелец: r — чтение, w — запись, x — выполнение. Полный набор разрешений представлен последовательностью rwx, если некое разрешение отсутствует, вместо него в соответствующей позиции ставится символ (-).
  3. Следующая последовательность из трёх символов указывает на то, какие разрешения на работу с файлом есть у группы пользователей (как правило, у группы владельца файла). Её содержимое читается по тем же правилам, что и описание прав владельца файла.
  4. Последняя последовательность из трёх символов, устроенная так же, как две предыдущих, описывает права всех пользователей кроме его владельца и тех пользователей, которые входят в группу файла.

Для управления правами доступа к файлам используется команда chmod. Например, для того чтобы добавить к текущим правам доступа к файлу разрешение на его запуск, можно воспользоваться следующей схемой её вызова: chmod +x <filename>. Конструкция +x указывает на то, что данное разрешение добавляется для всех пользователей.

Поговорим о некоторых особенностях настройки прав доступа к файлам с помощью chmod. Так, для назначения некоего разрешения всем пользователям используются конструкции, похожие на вышеописанную +x. Оператор (+) применяется для добавления разрешений, оператор (-) позволяет убирать разрешения, оператор (=) используется для установки определённых прав для пользователя-владельца файла (u, user), для группы (g, group), для остальных пользователей (o, others) и для всех пользователей (a, all). Делается это в конструкциях вида chmod u=rwx,g=rx,o=rx filename.

При назначении разрешений часто используют их запись в числовом виде. Определённым правам соответствуют восьмеричные коды. Так, x соответствует код 1, w соответствует код 2, а r соответствует код 4. Код 0 соответствует полному отсутствию разрешений на работу с файлом. Права на файл описываются трёхзначным числом, порядок цифр в котором соответствует вышеописанному порядку расположения групп разрешений. То есть — первая цифра описывает разрешения владельца файла, вторая — разрешения группы, третья — разрешения остальных пользователей. Каждая из этих цифр представляет собой сумму кодов разрешений r, w и x.

Например, команда вида chmod 444 filename означает, что все будут иметь право лишь на чтение файла (r--r--r--), а команда вида chmod 700 filename указывает на то, что у владельца будет право чтения, записи и запуска файла (rwx, 4+2+1), а никто другой не имеет права выполнять с файлом никаких действий (rwx------).

Работа с Git


При работе с Git обычно используется следующая последовательность действий:
  1. Модификация файла в локальной рабочей директории.
  2. Индексирование файлов (команда git add).
  3. Сохранение слепка проиндексированных данных во внутренней базе данных (git commit).
  4. Отправка изменений из локального репозитория в удалённый (git push).
  5. Загрузка изменений из удалённого репозитория в локальный (git pull).

Вот схема, иллюстрирующая данную последовательность действий.
Типичная последовательность действий, используемая при работе с Git

Файлы при работе с Git могут пребывать в различных состояниях.


Состояния файлов
  • Untracked (неотслеживаемый) — это файл, за изменениями которого Git не наблюдает. Этот файл может быть добавлен в индекс и оказаться в состоянии Staged.
  • Unmodified (немодифицированный) — файл, за которым организовано наблюдение, но содержимое которого не менялось. Если удалить этот файл, наблюдение за ним прекратится. Если его изменить — он перейдёт в состояние Modified.
  • Modified (изменённый) — файл, за которым организовано наблюдение, содержимое которого изменилось. Он может быть подвергнут индексированию и переведён в состояние Staged.
  • Staged (проиндексированный) — это файл, за которым осуществляется наблюдение, и который был включён в индекс. Соответствующие изменения могут быть включены в базу данных Git.

Рассмотрим некоторые команды Git.

git init: эта команда создаёт в директории пустой Git-репозиторий. Это — первый шаг, выполняемый при создании нового репозитория. После выполнения этой команды можно пользоваться командами git add и git commit.


Команда git init

git add: данная команда добавляет файлы в индекс. Она поддерживает, в виде git add ., добавление в индекс всех непроиндексированных файлов, в виде git add filename — добавление в индекс конкретного файла, в виде git add dirname — добавление в индекс директории.


Команда git add

git commit: эта команда записывает изменения в локальный репозиторий. Эти изменения называют, по аналогии с именем команды, «коммитами». У каждого коммита имеется уникальный идентификатор, что облегчает работу с коммитами.


Команда git commit

git status: эта команда позволяет получить сведения о текущем состоянии репозитория.


Команда git status

git config: данная команда позволяет настраивать Git. Среди настроек Git можно отметить user.name и user.email. Они содержат имя пользователя и адрес его электронной почты, используемые в коммитах и указывающие на то, кто их сделал. Если при вызове команды git config используется флаг --global — настройки применяются ко всем локальным репозиториям. Без этого флага настройки применяются только к текущему репозиторию.


Команда git config

git checkout: эта команда применяется для переключения между ветками репозитория (в виде git checkout <branch_name>). С её помощью можно создать новую ветку и переключиться на неё (git checkout -b <new_branch>).

git merge: эта команда позволяет объединять ветки репозитория. Она берёт изменения, имеющиеся в одной ветке, и включает их в состав другой ветки. Например, есть ветка, в которой работают над новой возможностью проекта. После того, как работа над этой возможностью будет завершена, изменения переносят в ветку, хранящую стабильные возможности.

git clone: данная команда используется для создания локальной рабочей копии удалённого репозитория. При её выполнении производится загрузка материалов удалённого репозитория на компьютер. Клонирование существующего репозитория сопоставимо с созданием нового репозитория командой git init. Но при клонировании в нашем распоряжении оказывается репозиторий, в котором уже что-то есть, а при выполнении команды git init — пустой репозиторий.

git pull: эта команда предназначена для загрузки свежих данных из удалённого репозитория.

git push: с помощью этой команды можно отправить локальные коммиты в удалённый репозиторий. При вызове этой команды нужно передать ей сведения об удалённом репозитории и о ветке локального репозитория, которую нужно отправить в удалённый репозиторий.

Итоги


Я рассказала вам обо всём, что узнала во время моего путешествия в мир Linux и Git. Это было очень увлекательно. Надеюсь, вам захочется сделать нечто подобное и изучить что-то новое, что-то такое, что расширит ваши профессиональные горизонты.

Если вы недавно освоили что-то интересное — просим об этом рассказать.

Git bash: определение, команды и начало работы

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

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

Что такое Git Bash?

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

Как установить Git Bash

Git Bash входит в состав пакета Git для Windows. Загрузите и установите Git для Windows, как и другие приложения для Windows. После загрузки найдите прилагаемый .exe и откройте его для выполнения Git Bash.

Как использовать Git Bash

Git Bash выполняет те же операции, что и стандартный интерфейс Bash. Будет полезно просмотреть базовое использование Bash. Расширенное использование Bash выходит за рамки этого документа, посвященного Git.

Как перемещаться по папкам

Команда 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. Git Bash действительно может обеспечить довольно надежную оболочку в Windows. Git Bash поставляется со следующими командами оболочки, которые выходят за рамки этого документа: Ssh , scp , cat , find .

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

Каково точное значение Git Bash?

git bash — это оболочка, в которой:

См. «Исправить msysGit Portable $ HOME location»:

в Windows 64:

  C: \ Windows \ SysWOW64 \ cmd.exe / c "" C: \ Prog \ Git \ 1.7.1 \ bin \ sh.exe "--login -i"
  

Это отличается от git-cmd.bat , который предоставляет команды git в простой командной строке DOS.

Такой инструмент, как GitHub для Windows (G4W), предоставляет другую оболочку для git (включая PowerShell)


Обновление, апрель 2015 г. :

Примечание: git bash в msysgit / Git для Windows 1.9.5 — старый:

  GNU bash, версия 3.1.20 (4) -релиз (i686-pc-msys)
Авторское право (C) 2005 Free Software Foundation, Inc.
  

Но с постепенным отказом от msysgit (4 квартал 2015 г.) и новым Git для Windows (2 квартал 2015 г.) теперь у вас есть Git для Windows 2.3.5.
Он имеет гораздо более позднюю версию bash, основанную на 64-битном проекте msys2, независимую переписанную версию MSYS, основанную на современном Cygwin (уровень совместимости POSIX) и MinGW-w64 с целью улучшения взаимодействия с собственным программным обеспечением Windows. msys2 также поставляется с собственным установщиком.

Теперь git bash (с новым Git для Windows):

  GNU bash, версия 4.3.33 (3) -release (x86_64-pc-msys)
Авторское право (C) 2013 Free Software Foundation, Inc.
  

Оригинальный ответ (июнь 2013 г.) Точнее из msygit wiki:

Исторически Git в Windows официально поддерживался только с помощью Cygwin.
Чтобы помочь создать родную версию Windows, этот проект был начат на основе mingw fork .

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

  • msysGit — это название этого проекта, среды сборки для Git для Windows, которая выпускает официальные двоичные файлы
  • MinGW — минималистичная среда разработки для нативных приложений Microsoft Windows.
    Это действительно очень тонкий слой времени компиляции над Microsoft Runtime; Таким образом, программы MinGW являются настоящими программами Windows, без концепции путей в стиле Unix или тонкостей POSIX, таких как fork () call
  • MSYS — это система интерпретатора командной строки Bourne Shell, используется MinGW (и другими), была разветвлена ​​ в прошлом от Cygwin
  • Cygwin — Linux-подобная среда, которая использовалась в прошлом для сборки Git для Windows, в настоящее время не имеет отношения к msysGit

Итак, ваше двухстрочное описание «git bash»:

« Git bash » — это оболочка msys, включенная в «Git для Windows», и является упрощенной версией Cygwin (при этом старая версия), единственной целью которой является обеспечение достаточного уровня уровня POSIX для запуска баш.


Напоминание:

msysGit — это среда разработки для компиляции Git для Windows. Он завершен в том смысле, что вам просто нужно установить msysGit, а затем вы можете собрать Git. Без установки стороннего ПО.

msysGit не является Git для Windows; это установщик, который устанавливает Git — и только Git .

Подробнее см. «Разница между msysgit и Cygwin + git?».

Работает над Git Bash — GeeksforGeeks

Git Bash — это приложение, которое обеспечивает работу с командной строкой Git в операционной системе.Это оболочка командной строки для включения git из командной строки в системе. Оболочка — это терминальное приложение, используемое для взаимодействия с операционной системой с помощью письменных команд. Git Bash — это пакет, который устанавливает Bash, некоторые распространенные утилиты bash и Git в операционной системе Windows. В Git Bash пользователь взаимодействует с репозиторием и элементами git с помощью команд.

Что такое Git?
  • Git — это система контроля версий для отслеживания изменений в исходном коде во время разработки программного обеспечения.
  • Он предназначен для координации работы программистов, но с его помощью можно отслеживать изменения в любом наборе файлов.
  • Его цель — повысить эффективность, скорость и упростить управление большими проектами с помощью контроля версий.
  • Каждый рабочий каталог git — это полноценный репозиторий с полной историей и возможностями отслеживания версий, независимо от доступа к сети или центрального сервера.
  • Git помогает команде справиться с путаницей, которая обычно возникает, когда несколько человек редактируют одни и те же файлы.
Установка Git Bash

Чтобы установить Git Bash в Windows, выполните следующие действия:

Шаг 1: Установщик файла .exe для Git Bash можно загрузить с https://gitforwindows.org/
После загрузки запустите этот установщик, появится следующее окно: —

Шаг 2: Выберите компоненты, которые необходимо установить, и нажмите кнопку Далее.


Шаг 3: Выберите способ использования Git из командной строки и нажмите Далее, чтобы начать процесс установки.

Шаг 4: Дождитесь завершения процесса установки, чтобы начать использовать Git Bash.

Чтобы открыть Git Bash, перейдите в папку, в которую вы установили git, в противном случае просто найдите в своей ОС git bash.

Навигация в Git Bash

cd команда
Команда

cd ссылается на изменить каталог и используется для перехода в желаемый каталог.

Для перемещения между папками используется команда cd
Синтаксис:

 cd имя_папки 
LS команда
Команда

ls используется для вывода списка всех файлов и папок в текущем каталоге.
Синтаксис:

 лс 
Установите глобальную конфигурацию имени пользователя и электронной почты

Откройте Git Bash и начните создавать имя пользователя и адрес электронной почты для работы с Git Bash.


Задайте имя пользователя:

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

Укажите адрес электронной почты:

 git config --global user.email "[email protected]" 
Инициализация локального репозитория

Следуйте инструкциям ниже, чтобы инициализировать локальный репозиторий с помощью Git:

Шаг 1: Создайте репозиторий на Github

Шаг 2: Дайте подходящее имя для вашего репозитория и создайте репозиторий

Шаг 3: После создания репозитория

появится следующее

Шаг 4: Откройте Git Bash и измените текущий рабочий каталог на свой локальный проект с помощью команды cd .


Шаг 5: Инициализируйте локальный каталог как репозиторий Git.

 git init 

Шаг 6: Подготовьте файлы для первой фиксации, добавив их в локальный репозиторий

 git add. 

Шаг 7: По «git status» вы можете увидеть поэтапные файлы

Шаг 8: Зафиксируйте файлы, которые вы разместили в локальном репозитории.

 git commit -m «Первая фиксация» 

Теперь После команды «git status» видно, что нечего фиксировать, следовательно, все файлы были зафиксированы.

Отправка файлов в репозиторий Git

Шаг 1: Перейдите в репозиторий Github и в code section скопируйте URL .

Шаг 2: В командной строке добавьте URL-адрес вашего репозитория, в который будет помещен ваш локальный репозиторий.


 git удаленное добавление источника репозитория_URL 

Шаг 3: Отправьте изменения в локальном репозитории на GitHub.

 git push origin master 

Здесь файлы помещены в главную ветку вашего репозитория.

Теперь в репозитории GitHub можно увидеть загруженные файлы.

Сохранение изменений в локальном репозитории

Предположим, что файлы изменяются и новые файлы добавляются в локальный репозиторий.
Чтобы сохранить изменения в репозитории git:
Шаг 1: Изменения должны быть подготовлены для фиксации.

 git add. 

или

 git add имя_файла 

Шаг 2: Теперь зафиксируйте подготовленные файлы.

 git commit -m "имя_команды" 

Шаг 3: Внесите изменения.

 git push origin master 

Новые изменения можно увидеть

Ветвление через Git Bash

Разветвление в Github

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


Синтаксис:

Навигация между филиалами

Для перехода между ветками используется git checkout .

Чтобы создать новую ветку и включить ее:

 git checkout -b имя_новой_ ветки 

Просто переключиться на ветку

 git checkout имя_ ветки 

После оформления заказа в ветку вы увидите * в текущей ветке

Теперь те же действия фиксации , добавление и , могут выполняться и в этой ветке.

Объединить любые две ветви

Чтобы объединить ветку в любую ветку:



  • Первый доступ к целевой ветке
     git checkout имя_ ветки 
  • Объединить ветвь с целевой веткой
     git merge new_branch 

Репозиторий клонирования в систему

Клонирование используется для получения копии существующего репозитория git.
Когда вы запускаете команду git clone , она сохраняет zip-папку в вашем местоположении по умолчанию

 git clone url 

Эта команда сохраняет каталог как имя каталога по умолчанию для репозитория git
Чтобы сохранить имя каталога как ваше собственное имя, необходимо передать дополнительный аргумент для вашего настраиваемого имени каталога

 git clone url custom_name 

Отмена фиксации

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

Синтаксис:

 git commit --amend 
Заключение
  • В заключение можно сказать, что git bash — это платформа командной строки, которая помогает включить git и его элементы в вашу систему.
  • Есть несколько команд, которые используются в git bash.
  • Git Bash очень прост в использовании и позволяет легко работать с репозиториями и проектами.

linux — Как понять, что такое Shell, Terminal, MinGW, Bash, Git Bash и т. Д.?

Я все еще начинаю программировать на Python. Я неплохо знаю основы, а также могу использовать некоторые пакеты и библиотеки. Я использовал Pandas, Matplotlib, Beautiful Soup, Requests, чтобы назвать несколько, и я хочу изучить Data Science (как вы могли догадаться по названиям библиотек).В настоящее время Python — единственный язык, который я знаю, и я абсолютно одержим этим прекрасным языком. Но чтобы узнать больше о информатике и стать лучшим программистом в целом, мне также необходимо знать командную строку, что это такое и как ее использовать.

Так я использую винду. Я знаю, как использовать командную строку и менять каталоги, а также создавать или удалять каталоги. И я также знаю, как использовать git, а также команды git, чтобы я мог git нажать или git вытащить мой код на GitHub или с него.Поэтому я скачал git с https://git-scm.com/downloads и увидел, что я также установил что-то вроде командной строки под названием Git Bash. И, к своему удивлению, я увидел, что Git Bash поддерживает команды Linux и Mac, такие как cat или touch или ls .

Итак, я много исследовал в Интернете и теперь «думаю», что могу иметь базовое понимание некоторых терминов. Это я понимаю.

Корпус

  • Shell — это базовая программа, которая обрабатывает ввод и вывод и выполняет команды, которые она получает.
  • Примеры оболочки:
    • Bash для Linux / Mac или Unix
    • CMD в Windows

Терминал

  • Терминал — это своего рода оболочка / обертка, которая находится поверх основной оболочки. Он принимает ввод и передает его оболочке, оболочка обрабатывает это и отправляет вывод на терминал, и терминал отображает его нам.
  • Примеры терминала:
    • Терминал на Mac / Linux
    • Командная строка в Windows

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

Git Bash — это программа, похожая на командную строку, но она поддерживает команды командной строки Linux в Windows, такие как cat или touch . Его оболочка — это Bash (потому что она называется Git Bash), а ее терминал — это MinGW (потому что я вижу MinGW64 при запуске Git Bash)

Теперь мой вопрос: прав ли я в этом понимании. Если это не так, я бы очень хотел попросить кого-нибудь поправить меня в том, как они работают.И если я ошибаюсь и программа Git Bash не использует Bash в качестве оболочки или MinGW в качестве своего терминала , пожалуйста, также укажите, что она скорее использует. Спасибо!

Git Bash — точка Javatpoint

Git можно определить как набор служебных программ командной строки, предназначенных для выполнения в среде Windows. Многие операционные системы, такие как Linux и macOS, содержат встроенные терминалы командной строки UNIX. Это делает Linux и macOS дополнительными операционными системами при работе с Git.В Windows нет командного интерфейса в стиле UNIX. Вместо этого Microsoft Windows использует командную строку Windows, а не UNIX терминал. Следовательно, Git для Windows предоставляет эмуляцию Bash для запуска Git из командной строки.

Другими словами, Git Bash — это приложение, которое добавляет уровень эмуляции в среды Microsoft Windows для использования интерфейса командной строки Git. Это похоже на пакет, который устанавливает некоторые общие утилиты bash в операционной системе Windows. Это позволило нам использовать все функции Git, а также большинство стандартных команд UNIX в интерфейсе командной строки в Windows.

Как установить Git Bash

Git Bash входит в пакет «Git для Windows». Загрузите последнюю версию пакета Git Bash с официального сайта и установите его, как и другие приложения Windows. Ниже приведена ссылка для загрузки Git для Windows:

Ссылка для скачивания: Щелкните здесь


После загрузки пакета запустите исполняемый файл:

Выберите действительный путь, по которому вы хотите установить Git Bash:

Выберите соответствующие компоненты, которые вы хотите установить, и нажмите кнопку «Далее»:

Следуйте инструкциям на экране, чтобы завершить установку.

Чтобы проверить версию Git для Windows, используйте команду:

git —version

После выполнения этой команды вывод будет выглядеть так:

Запустите Git Bash

После завершения установки найдите значок «Git Bash» и дважды щелкните его, чтобы запустить Git Bash. Он запустит «оболочку bash», интегрированную с Git.

Git Bash работает так же, как и стандартный bash, и полезен для обзора базового использования Bash.Он включает в себя полный набор основных команд Git. Он также содержит дополнительные команды, которые можно найти в каталоге / usr / bin эмуляции Git Bash.

Вот как мы можем использовать сценарии оболочки Bash в операционной системе Windows.


Объяснение истории Bash и Git

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

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

Это руководство по Git для начинающих знакомит с основами Git как системы управления версиями, с тем, что такое GIt, принципы его работы и взаимодействия. Вы увидите, что научиться работать с командной строкой Git — это хорошая идея, поскольку это более эффективный способ выполнения команд Git. Вы узнаете, что такое команды Git Bash и оболочка Git и как они помогают запускать команды.

Начнем с команд Git!

Git как средство контроля версий: основные советы

  • Git — один из самых популярных вариантов среди разработчиков для отслеживания изменений версии, сделанных с течением времени
  • Существует ряд дополнительных инструментов для использования с Git и его уже предварительно созданным графическим интерфейсом.
  • Несмотря на то, что Git поставляется с GUI , неплохо было бы освоить его командную строку , поскольку она помогает полностью использовать все функции Git.

Преимущества Git как VCS

Почему вам следует использовать Git и каковы его основные отличия от других систем контроля версий (VCS)?

Все компании используют тот или иной тип системы контроля версий. Например, средство управления локальными версиями сохраняет изменения в базе данных на локальном компьютере .Инструменты централизованного контроля версий используют общий сервер для хранения файлов, а система распределенного контроля версий распределяет копий файлов клиентам, которые ее используют. Эту версию предпочитают многие, потому что:

  1. Это упрощает совместное использование файлов, чем локальный контроль версий.
  2. Это может устранить проблемы, которые могут возникнуть, если соединение с сервером потеряно в системе централизованного контроля версий.
  3. Все изменения записываются, и их трудно потерять.

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

Git можно использовать разными способами, и более того, он имеет ряд различных специальных инструментов. Например, было бы неплохо загрузить некоторые сторонние инструменты Git GUI. С другой стороны, Git имеет уже встроенный графический интерфейс, а также другие инструменты. В этом руководстве основное внимание уделяется командной строке.

Плюсы
  • Упрощенный дизайн (без лишней информации)
  • Качественные курсы (даже бесплатные)
  • Разнообразие функций
Основные характеристики
  • Нанодипломные программы
  • Подходит для предприятий
  • Платные сертификаты об окончании
Плюсы
  • Профессиональное обслуживание
  • Гибкое расписание
  • Разнообразие функций на выбор
Основные характеристики
  • Профессиональные сертификаты об окончании
  • Курсы университетского уровня
  • Несколько программ на получение степени онлайн
  • Отличный пользовательский интерфейс
  • Предлагает качественный контент
  • Очень прозрачно с их ценами
Основные характеристики
  • Бесплатные сертификаты об окончании
  • Сосредоточены на навыках обработки данных
  • Flex Расписание обучения ible

Git CMD

Как следует из названия, это интерпретатор командной строки.Если вы в настоящее время используете или использовали Windows, вы, вероятно, видели один. Если вы установили Git в Windows и привыкли использовать CMD, вы можете использовать его для команд Git.

Git Bash

Bash в Git — это эмуляция оболочки Unix для Linux и Mac OS, поэтому вы можете использовать ее и в Windows, если привыкли к Linux. Команды Git Bash выполняются в Linux, а в Windows есть командная строка Git Shell.

Git GUI

Графический интерфейс пользователя (GUI) облегчает использование Git.Возможно, вам вообще не придется касаться Git Bash, CMD или использовать командные строки.

С другой стороны, встроенный графический интерфейс имеет свои ограничения. На первый взгляд, это может показаться довольно минималистичным. Более того, разные графические интерфейсы, несмотря на их возможности, могут поддерживать только частичную функциональность Git. Вот почему в этом руководстве основное внимание уделяется освоению командных строк Git.

Git как средство контроля версий: сводка

  • Разработчики часто выбирают Git, когда им нужно отслеживать , а контролировать изменения версии .
  • Git имеет ряд третьих сторон сторон инструментов , которые могут быть реализованы и использованы в системе.
  • У
  • Git есть собственный графический интерфейс, но не рекомендуется, полагаться исключительно на него.

A Оболочка | Удачного Git и GitHub для пользователя R

Даже если вы выполняете большинство операций Git через клиента, такого как RStudio или GitKraken, вам иногда приходится работать в оболочке. Когда вы освоитесь с Git, вы, возможно, предпочтете делать все больше и больше через командную строку.Вам также может потребоваться использовать Git или операции файловой системы на сервере, на котором отсутствует ваш обычный клиент Git. По всем этим причинам неплохо изучить оболочку.

Вот типичный вид ракушки. Вы увидите простой мигающий курсор, ожидающий ввода:

Что такое оболочка?

Оболочка — это программа на вашем компьютере, задача которой — запускать другие программы. Псевдосинонимами являются «терминал», «командная строка» и «консоль». Существует целая ветка StackExchange о различиях (в чем разница между терминалом, консолью, оболочкой и командной строкой?), Но я не считаю ее очень полезной.Ваш пробег может отличаться.

Многие программисты проводят много времени в оболочке, а не в графическом интерфейсе пользователя, потому что это очень быстро, кратко и повсеместно в их соответствующих вычислительных средах. Так была проделана вся работа до того, как мы получили мышь и графический интерфейс.

Самая распространенная оболочка — это bash , и она иногда используется как прокси для «оболочки», точно так же, как «Кока-кола» и «Kleenex» являются заместителями для колы и салфеток.

В Happy Git мы иногда демонстрируем использование оболочки для определенных задач, таких как навигация по файловой системе и выполнение операций Git, когда мы не хотим или не можем использовать RStudio.Предоставление команд оболочки также менее неоднозначно и менее недолговечно, чем описание взаимодействия человека с графическим интерфейсом.

Запуск оболочки

Изнутри RStudio

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

Есть два пути:

  • Инструменты> Терминал запускает оболочку в RStudio графически и по процессам.Я считаю, что обычно это то, чего вы хотите.
  • Инструменты> Оболочка… запускает оболочку, внешнюю по отношению к RStudio.

вне RStudio

macOS

Оболочку в macOS часто называют «терминалом», что означает Terminal.app. Один из способов запуска — поиск в центре внимания. Введите Command + пробел и начните вводить «терминал». Этот процесс будет примерно таким:

Terminal.app обычно находится по адресу / Applications / Utilities / Terminal.приложение .

Открытие Terminal.app приведет вас к оболочке bash, открытой в вашем домашнем каталоге ~ / , что является сокращением для / Users / YOURUSERNAME . Вы должны увидеть что-то вроде этого:

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

Окна

Мы отложили это до следующего раздела из-за более сложной ситуации с оболочкой в ​​Windows.

Windows особенная… и не в хорошем смысле

Windows — не идеальная платформа для научных вычислений и разработки программного обеспечения. Многие функции будут казаться неудобными и ограниченными. Потому что это.

Существует не менее четырех возможных оболочек, в которых вы можете оказаться. Если вы не знаете лучше, вы почти наверняка захотите работать с оболочкой Git Bash, особенно здесь, в Happy Git.

Пользователи Windows захотят разобраться в различных типах оболочки, как их запускать и как определить, в какой из них вы находитесь.

Git Bash

TL; DR, как узнать, используете ли вы оболочку Git Bash? Сделайте это:

  $ echo $ SHELL
/ usr / bin / bash  

Git Bash — это оболочка bash, которая поставляется с Git для Windows, который является счастливым способом Git для установки Git в Windows. Следовательно, у вас не будет Git Bash в вашей системе, пока вы не установите Git для Windows.

Git Bash — это всегда оболочка Windows, на которую мы ориентируемся в инструкциях Happy Git.

RStudio должен автоматически обнаруживать присутствие Git Bash. Вы можете проверить это и повлиять на это напрямую через Инструменты > Глобальные параметры> Терминал . Если у вас нет веской причины поступить иначе, вы хотите увидеть «Git Bash» в раскрывающемся меню «Новые терминалы, открываемые с помощью…».

Советы по поиску и устранению неисправностей:

  • Перезапустите RStudio. Вам необходимо перезапустить все экземпляры RStudio после установки Git для Windows (+ Git Bash), чтобы RStudio автоматически обнаруживал Git Bash.
  • Обновите RStudio. Обработка оболочки в RStudio со временем значительно улучшилась, поэтому старые версии могут вести себя не так, как описано здесь.
Доступ к Git Bash вне RStudio

Иногда вам нужно запустить Git Bash вне RStudio. Вот самый простой способ: щелкните меню «Git» в меню Windows и выберите «Git Bash».

Оболочка Git Bash, работающая вне RStudio, выглядит примерно так:

Уведомление MSYS в строке заголовка.Вы также можете увидеть MINGW64 .

Иногда вам нужно запустить Git Bash от имени администратора, например работать с более высокими привилегиями. Самый простой способ: щелкните меню «Git» в меню Windows и щелкните правой кнопкой мыши на «Git Bash». Откроется подменю. Выберите «Дополнительно», а затем «Запуск от имени администратора».

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

TL; DR, как узнать, что вы находитесь в командной строке? Сделайте это:

  C: \ Users \ jenny> echo% COMSPEC%
C: \ WINDOWS \ system32 \ cmd.exe  

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

Сеанс командной строки, запущенный вне RStudio, выглядит примерно так:

Обратите внимание на cmd.exe в строке заголовка, хотя не всегда присутствует . Вы также можете увидеть «Командная строка».

Если вы получаете сообщение об ошибке, например , «pwd» не распознается как внутренняя или внешняя команда, работающая программа или командный файл. из команды оболочки, которая предполагает, что вы каким-то образом запустили cmd.exe , когда не хотели.

PowerShell

TL; DR, как узнать, используете ли вы PowerShell? Сделайте это:

  PS C: \ Users \ jenny> Get-ChildItem Env: ComSpec

Имя Значение
---- -----
ComSpec C: \ WINDOWS \ system32 \ cmd.exe  

PowerShell — это еще одна оболочка Windows, более современный преемник командной строки.Также редко бывает то, что вам нужно, особенно для работы, описанной в Happy Git.

Сеанс PowerShell, запущенный вне RStudio, выглядит примерно так:

Обратите внимание на powershell.exe в строке заголовка.

Bash через службы Windows для Linux

TL; DR, как узнать, что вы используете Bash через WSL? Сделайте это:

В 2016 году Microsoft запустила подсистему Windows для Linux (WSL), «новую функцию Windows 10, которая позволяет запускать собственные инструменты командной строки Linux непосредственно в Windows».В целом, это фантастическое развитие. Однако на момент написания (январь 2019 г.) у вас будет это только в том случае, если вы используете 64-разрядную версию Windows 10 и выбрали установку дополнительного системного компонента WSL. Поэтому я ожидаю, что это будет только у любителей, и в этом случае вам, вероятно, не понадобится эта глава.

Оболочка WSL bash, работающая вне RStudio, выглядит примерно так:

FYI Microsoft также называет WSL Bash в Ubuntu в Windows.

Окна нижняя строка

Если есть сомнения, вы, вероятно, захотите использовать оболочку Git Bash.

.