Яке точне значення Git Bash?


94

Git Bash

Я працюю з Git Bash останні два дні. Я знаю , що тепер основні операції , такі як commit, push, pull, fetch, і merge. Але я все ще не знаю, що насправді є сам Git Bash !

Я багато шукав про Git Bash, але всі сайти, які я бачив, зосереджуються на функціональності його команд. Я все ще не знайшов хорошої відповіді на своє запитання. Тепер, я думаю, я в потрібному місці, щоб отримати цю відповідь!


4
Людей також може зацікавити моє запитання про SuperUser Що таке Git Bash для Windows взагалі?
генеорама

Не існує такого поняття, як "Git bash". Існує "баш", а є "git". Bash - це інтерактивний інтерпретатор командного рядка, який іноді також називають просто "sh" або "shell" з історичних причин, аналогічно "cmd" від Microsoft. Однак існує "git shell", який є "заблокованим" інтерпретатором команд, що використовується для обмеження потужності анонімного доступу до серверів git і є частиною розподілу git. Так як мерзотник був розроблений на і для UNIX подібних систем, то краще за все в парі з CLI «Баш», хоча, по ідеї, це оболонка агностик.
Hatebit

Відповіді:


78

git bash - це оболонка, де:

  • запущений процес sh.exe(упакований у msysgit , as share/WinGit/Git Bash.vbs)
  • git - відома команда
  • $HOME визначено

Див. " Виправлення портативного $HOMEрозташування msysGit ":

У 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, version 3.1.20(4)-release (i686-pc-msys)
Copyright (C) 2005 Free Software Foundation, Inc.

Але з поступовим припиненням роботи msysgit (Q4 2015) та нового Git For Windows (Q2 2015), у вас тепер є Git для Windows 2.3.5 .
Він має набагато новіший bash, заснований на 64- бітному проекті msys2 , незалежний перезапис MSYS, заснований на сучасному Cygwin (рівень сумісності POSIX) та MinGW-w64 з метою кращої взаємодії з власним програмним забезпеченням Windows. msys2поставляється зі своїм власним інсталятором .

Зараз git bash (з новим Git для Windows):

GNU bash, version 4.3.33(3)-release (x86_64-pc-msys)
Copyright (C) 2013 Free Software Foundation, Inc.

Оригінальна відповідь (червень 2013 р.) Точніше, з msygit wiki :

Історично склалося, що Git на Windows офіційно підтримувався лише за допомогою Cygwin.
Щоб допомогти створити рідну версію Windows, цей проект було запущено на основі вилки mingw .

Щоб зробити молочний «суп» назв проектів більш зрозумілим, ми говоримо так:

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

Отже, опис ваших двох рядків про "git bash":

" Git bash" - це оболонка msys, включена до "Git для Windows", і є зменшеною версією Cygwin (стара версія на той час), єдиною метою якої є забезпечення достатнього рівня POSIX для запуску bash.


Нагадування:

msysGit - середовище розробки для компіляції Git для Windows. Він закінчений, в тому сенсі, що вам просто потрібно встановити msysGit, а потім ви можете створити Git. Без установки будь-якого стороннього програмного забезпечення.

msysGit - це не Git для Windows; це інсталятор, який встановлює Git - і лише Git .

Докладніше в " Різниця між msysgit та Cygwin + git? ".


2
я хочу знати лише значення про це!
DRAJI

@DRAJI, ти маєш на увазі, що моя відповідь не охоплювала те, що ти хотів знати?
VonC

@DRAJI чи є дещо більше, про що ви хотіли б знати про " git bash"?
VonC

Звичайно. Але насамперед я хочу знати лише два описи про це, після чого я зроблю наступний крок.
DRAJI

3
наприклад, у чому різниця між UNIX Bash та Git Bash?
Олександр Міллс

22

Я думаю, що запитувач питання (думав) думає, що git bash - це така команда, як git init або git checkout . Git bash - це не команда , це інтерфейс . Я також припущу, що автор запиту не є користувачем Linux, оскільки bash дуже популярний у світі unix / linux. Назва "bash" є абревіатурою від " B ourne A gain SH ell". Bash - це текстовий командний інтерфейс, який має функції, що дозволяють запускати автоматизовані сценарії. Хороша аналогія була б порівняти Баш з новим PowerShell інтерфейсу в Windows7 / 8. бідниханалогія (але одна, яку, ймовірно, буде легше зрозуміти більшій кількості людей) - це поєднання командного рядка та командних файлів .BAT (пакетний) часів DOS та ранніх версій Windows.

ЛІТЕРАТУРА:


10

Bash - це інтерфейс командного рядка, який був створений Брайаном Фоксом двадцять сім років тому як безкоштовна програма для заміни оболонки Борна. Оболонка - це особливий вид інтерфейсу командного рядка. Bash - це «відкритий код», що означає, що кожен може прочитати код і запропонувати зміни. З самого початку його підтримує велика спільнота інженерів, які працювали над тим, щоб зробити його неймовірним інструментом. Bash - оболонка за замовчуванням для Linux та Mac. З цих причин Bash є найбільш часто використовуваною оболонкою.

Windows має інший інтерфейс командного рядка, який називається командний рядок. Незважаючи на те, що він має багато тих самих функцій, що і Bash, Bash набагато популярніший. Завдяки потужності спільноти з відкритим кодом та інструментам, які вони надають, освоєння Bash є кращою інвестицією, ніж освоєння командного рядка.

Щоб використовувати Bash на комп’ютері з Windows, нам потрібно завантажити та встановити програму під назвою Git Bash. Git Bash (це Bash для вікон) дозволяє нам легко отримати доступ до Bash, а також до іншого інструменту під назвою Git, всередині середовища Windows.


1
Окрім того, поточним CLI для Windows є PowerShell. Древня оболонка CMD на основі DOS все ще існує щодо сумісності, але MSFT зосереджує всю свою увагу на PS. Це дуже приємно, насправді, беручи орієнтовані на конвеєри оболонки на основі Unix (bash, sh, csh, ksh, zsh тощо) і розширюючи їх, дозволяючи передавати об'єкти, а не просто текст.
Пітер Халверсон,

3

По суті, Git - це набір утиліт програм командного рядка, призначених для виконання в середовищі командного рядка стилю Unix. Сучасні операційні системи, такі як Linux та macOS, включають вбудовані термінали командного рядка Unix. Це робить Linux та macOS додатковими операційними системами при роботі з Git. Microsoft Windows замість цього використовує командний рядок Windows, не термінальне середовище Unix.

Що таке Git Bash?

Git Bash - це програма для середовищ Microsoft Windows, яка забезпечує рівень емуляції для роботи з командним рядком Git. Bash - скорочення від Bourne Again Shell. Оболонка - це термінальна програма, яка використовується для взаємодії з операційною системою за допомогою письмових команд. Bash - це популярна оболонка за замовчуванням для Linux та macOS. Git Bash - це пакет, який встановлює Bash, деякі загальні утиліти bash та Git в операційній системі Windows.

джерело: https://www.atlassian.com/git/tutorials/git-bash


2
"Git - це набір службових програм командного рядка, призначених для виконання в середовищі командного рядка в стилі Unix" ... правда, і не дивно, враховуючи, що Git був створений Лінусом Торвальдсом ( en.wikipedia.org/wiki/Linus_Torvalds )
VonC,
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.