Was ist die genaue Bedeutung von Git Bash?

92

Git Bash

Ich habe in den letzten zwei Tagen mit Git Bash gearbeitet. Ich weiß jetzt , die grundlegenden Operationen wie commit, push, pull, fetch, und merge. Aber ich weiß immer noch nicht, was Git Bash selbst ist!

Ich habe viel über Git Bash gesucht, aber alle Websites, die ich gesehen habe, konzentrieren sich auf die Funktionalität seiner Befehle. Ich habe immer noch keine gute Antwort auf meine Frage gefunden. Nun, ich denke, ich bin am richtigen Ort, um diese Antwort zu bekommen!

DRAJI
quelle
4
Leute könnten auch an meiner Frage zu SuperUser interessiert sein. Was ist Git Bash für Windows überhaupt?
Genorama
Es gibt kein "Git Bash". Es gibt "Bash" und es gibt "Git". Bash ist ein interaktiver Befehlszeileninterpreter, der aus historischen Gründen manchmal auch nur "sh" oder "shell" genannt wird, analog zu Microsofts "cmd". Es gibt jedoch "git shell", einen "gesperrten" Befehlsinterpreter, der verwendet wird, um die Leistung des anonymen Zugriffs auf git-Server zu begrenzen, und der Teil der git-Verteilung ist. Da git auf und für UNIX-ähnliche Systeme entwickelt wurde, ist es am besten mit "bash" CLI zu kombinieren, obwohl es theoretisch Shell-agnostisch ist.
Hassbit

Antworten:

78

Git Bash ist eine Shell, in der:

Siehe " Fix msysGit Portable $HOMELocation ":

Unter Windows 64:

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

Dies unterscheidet sich von git-cmd.batder Bereitstellung von Git-Befehlen in einer einfachen DOS-Eingabeaufforderung.

Ein Tool wie GitHub für Windows (G4W) bietet eine andere Shell für Git (einschließlich einer PowerShell).


Update April 2015 :

Hinweis: Die Git-Bash in msysgit / Git für Windows 1.9.5 ist alt:

GNU bash, version 3.1.20(4)-release (i686-pc-msys)
Copyright (C) 2005 Free Software Foundation, Inc.

Mit dem Auslaufen von msysgit (Q4 2015) und dem neuen Git für Windows (Q2 2015) haben Sie jetzt Git für Windows 2.3.5 .
Es hat eine viel neuere Version, die auf dem 64-Bit- msys2-Projekt basiert , einer unabhängigen Neufassung von MSYS, basierend auf modernem Cygwin (POSIX-Kompatibilitätsschicht) und MinGW-w64 mit dem Ziel einer besseren Interoperabilität mit nativer Windows-Software. msys2kommt auch mit einem eigenen Installer .

Die Git-Bash ist jetzt (mit dem neuen Git für Windows):

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

Ursprüngliche Antwort (Juni 2013) Genauer gesagt aus dem Msygit-Wiki :

In der Vergangenheit wurde Git unter Windows nur mit Cygwin offiziell unterstützt.
Um eine native Windows-Version zu erstellen , wurde dieses Projekt basierend auf der Mingw-Gabel gestartet .

Um die milchige "Suppe" der Projektnamen klarer zu machen, sagen wir Folgendes:

  • msysGit - ist der Name dieses Projekts, einer Build-Umgebung für Git für Windows, die die offiziellen Binärdateien veröffentlicht
  • MinGW - ist eine minimalistische Entwicklungsumgebung für native Microsoft Windows-Anwendungen.
    Es ist wirklich eine sehr dünne Schicht zur Kompilierungszeit über die Microsoft Runtime; MinGW-Programme sind daher echte Windows-Programme ohne Konzept von Unix-Pfaden oder POSIX-Feinheiten wie einem fork()Aufruf
  • MSYS - ist ein Bourne Shell-Befehlszeileninterpretersystem, das von MinGW (und anderen) verwendet wird und in der Vergangenheit von Cygwin gegabelt wurde
  • Cygwin - eine Linux-ähnliche Umgebung, die in der Vergangenheit zum Erstellen von Git für Windows verwendet wurde, hat heutzutage keine Beziehung zu msysGit

Ihre zweizeilige Beschreibung zu "git bash" lautet also:

" Git bash" ist eine in "Git für Windows" enthaltene msys-Shell und eine abgespeckte Version von Cygwin (eine alte Version), deren einziger Zweck darin besteht, genügend POSIX-Layer bereitzustellen, um eine Bash auszuführen.


Erinnerung:

msysGit ist die Entwicklungsumgebung zum Kompilieren von Git für Windows. Es ist vollständig in dem Sinne, dass Sie nur msysGit installieren müssen und dann Git erstellen können. Ohne Installation von Software von Drittanbietern.

msysGit ist nicht Git für Windows; Das ist ein Installationsprogramm, das Git installiert - und nur Git .

Weitere Informationen finden Sie unter " Unterschied zwischen msysgit und Cygwin + git? ".

VonC
quelle
1
Ich möchte wissen, was das bedeutet!
DRAJI
@DRAJI meinst du, meine Antwort deckte nicht das ab, was du wissen wolltest?
VonC
@DRAJI Gibt es weitere Details, die Sie über " git bash" wissen möchten ?
VonC
Natürlich. Aber zuerst möchte ich nur eine zweizeilige Beschreibung darüber wissen. Danach werde ich einen nächsten Schritt machen.
DRAJI
3
Was ist zum Beispiel der Unterschied zwischen UNIX Bash und Git Bash?
Alexander Mills
22

Ich denke, der Fragesteller denkt (war), dass git bash ein Befehl wie git init oder git checkout ist . Git Bash ist kein Befehl , sondern eine Schnittstelle . Ich gehe auch davon aus, dass der Fragesteller kein Linux-Benutzer ist, da Bash in der Unix / Linux-Welt sehr beliebt ist. Der Name "bash" ist eine Abkürzung für " B ourne A gain SH ell". Bash ist eine Nur-Text-Befehlsoberfläche mit Funktionen, mit denen automatisierte Skripts ausgeführt werden können. Eine gute Analogie wäre, Bash mit der neuen PowerShell- Oberfläche in Windows 7/8 zu vergleichen . Ein armerAnalogie (aber eine, die wahrscheinlich von mehr Personen leichter verstanden wird) ist die Kombination der Eingabeaufforderung und der .BAT-Befehlsdateien (Batch) aus den Tagen von DOS und früheren Versionen von Windows.

VERWEISE:

OMY
quelle
10

Bash ist eine Befehlszeilenschnittstelle, die vor über 27 Jahren von Brian Fox als Ersatz für freie Software für die Bourne Shell erstellt wurde. Eine Shell ist eine bestimmte Art von Befehlszeilenschnittstelle. Bash ist "Open Source", was bedeutet, dass jeder den Code lesen und Änderungen vorschlagen kann. Von Anfang an wurde es von einer großen Gemeinschaft von Ingenieuren unterstützt, die daran gearbeitet haben, es zu einem unglaublichen Werkzeug zu machen. Bash ist die Standard-Shell für Linux und Mac. Aus diesen Gründen ist Bash die am häufigsten verwendete und am weitesten verbreitete Shell.

Windows verfügt über eine andere Befehlszeilenschnittstelle, die als Eingabeaufforderung bezeichnet wird. Während dies viele der gleichen Funktionen wie Bash hat, ist Bash viel beliebter. Aufgrund der Stärke der Open Source-Community und der von ihnen bereitgestellten Tools ist das Beherrschen von Bash eine bessere Investition als das Beherrschen der Eingabeaufforderung.

Um Bash auf einem Windows-Computer verwenden zu können, müssen wir ein Programm namens Git Bash herunterladen und installieren. Git Bash (ist der Bash für Windows) ermöglicht den einfachen Zugriff auf Bash sowie ein anderes Tool namens Git in der Windows-Umgebung.

Juan Francisco Garcia Gonzalez
quelle
1
Abgesehen davon ist die aktuelle CLI für Windows PowerShell. Die alte DOS-basierte CMD-Shell ist aus Kompatibilitätsgründen immer noch verfügbar, aber MSFT konzentriert sich ganz auf PS. Es ist wirklich sehr schön, die Pipe-orientierten Funktionen von Unix-basierten Shells (bash, sh, csh, ksh, zsh usw.) zu nutzen und sie zu erweitern, um das Übergeben von Objekten im Vergleich zu nur Text zu ermöglichen.
Peter Halverson
3

Git ist im Kern eine Reihe von Befehlszeilenprogrammen, die für die Ausführung in einer Befehlszeilenumgebung im Unix-Stil entwickelt wurden. Moderne Betriebssysteme wie Linux und macOS enthalten integrierte Unix-Befehlszeilenterminals. Dies macht Linux und macOS zu komplementären Betriebssystemen bei der Arbeit mit Git. Microsoft Windows verwendet stattdessen die Windows-Eingabeaufforderung, eine Nicht-Unix-Terminalumgebung.

Was ist Git Bash?

Git Bash ist eine Anwendung für Microsoft Windows-Umgebungen, die eine Emulationsebene für eine Git-Befehlszeilenerfahrung bietet. Bash ist eine Abkürzung für Bourne Again Shell. Eine Shell ist eine Terminalanwendung, mit der über schriftliche Befehle eine Schnittstelle zu einem Betriebssystem hergestellt wird. Bash ist eine beliebte Standard-Shell unter Linux und MacOS. Git Bash ist ein Paket, das Bash, einige gängige Bash-Dienstprogramme und Git auf einem Windows-Betriebssystem installiert.

Quelle: https://www.atlassian.com/git/tutorials/git-bash

Abhijeet C'kar
quelle
1
"Git ist eine Reihe von Befehlszeilen-Dienstprogrammen, die für die Ausführung in einer Befehlszeilenumgebung im Unix-Stil entwickelt wurden." ... wahr und nicht überraschend, wenn man bedenkt, dass Git von Linus Torvalds ( en.wikipedia.org/wiki/Linus_Torvalds) erstellt wurde )
VonC