Quelle est la signification exacte de Git Bash?

94

Git Bash

Je travaille avec Git Bash depuis deux jours. Je sais maintenant les opérations de base telles que commit, push, pull, fetch, et merge. Mais je ne sais toujours pas ce que Git Bash lui - même est en réalité!

J'ai beaucoup cherché sur Git Bash, mais tous les sites que j'ai vus se concentrent sur la fonctionnalité de ses commandes. Je n'ai toujours pas trouvé de bonne réponse à ma question. Maintenant, je pense, je suis au bon endroit pour obtenir cette réponse!

DRAJI
la source
4
Les gens peuvent également être intéressés par ma question sur SuperUser Qu'est-ce que Git Bash pour Windows de toute façon?
geneorama le
Il n'y a pas de "Git bash". Il y a "bash" et il y a "git". Bash est un interpréteur de ligne de commande interactif, parfois aussi appelé simplement "sh" ou "shell" pour des raisons historiques, analogue au "cmd" de Microsoft. Il existe cependant "git shell", qui est un interpréteur de commandes "verrouillé" utilisé pour limiter la puissance de l'accès anonyme aux serveurs git, et fait partie de la distribution git. Puisque git a été développé sur et pour des systèmes UNIX, il est préférable de l'appairer avec la CLI "bash", bien qu'en théorie, il soit indépendant du shell.
Hatebit

Réponses:

78

git bash est un shell où:

Voir « Correction de msysGit Portable$HOME emplacement ":

Sur un Windows 64:

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

Cela diffère de git-cmd.bat , qui fournit des commandes git dans une invite de commande DOS simple.

Un outil comme GitHub pour Windows (G4W) fournit un shell différent pour git (y compris un PowerShell)


Mise à jour avril 2015 :

Remarque: le git bash dans msysgit / Git pour Windows 1.9.5 est un ancien:

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

Mais avec la suppression progressive de msysgit (Q4 2015) et du nouveau Git For Windows (Q2 2015), vous disposez désormais de Git pour Windows 2.3.5 .
Il a une bash beaucoup plus récente, basée sur le projet 64bits msys2 , une réécriture indépendante de MSYS, basée sur Cygwin moderne (couche de compatibilité POSIX) et MinGW-w64 dans le but d'une meilleure interopérabilité avec les logiciels Windows natifs. msys2livré avec son propre programme d'installation .

Le git bash est maintenant (avec le nouveau Git pour Windows):

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

Réponse originale (juin 2013) Plus précisément, du wiki msygit :

Historiquement, Git sur Windows n'était officiellement pris en charge qu'avec Cygwin.
Pour aider à créer une version native de Windows, ce projet a été lancé, basé sur le fork mingw .

Pour rendre la `` soupe '' laiteuse des noms de projets plus claire, nous disons comme ceci:

  • msysGit - est le nom de ce projet, un environnement de construction pour Git pour Windows, qui publie les binaires officiels
  • MinGW - est un environnement de développement minimaliste pour les applications Microsoft Windows natives.
    Il s'agit en fait d'une couche de compilation très fine sur le Microsoft Runtime; Les programmes MinGW sont donc de vrais programmes Windows, sans aucun concept de chemins de style Unix ou de subtilités POSIX comme un fork()appel
  • MSYS - est un système d'interprétation en ligne de commande Bourne Shell, est utilisé par MinGW (et d'autres), a été bifurqué dans le passé de Cygwin
  • Cygwin - un environnement similaire à Linux, qui était utilisé dans le passé pour construire Git pour Windows, n'a aujourd'hui aucun rapport avec msysGit

Donc, vos deux lignes de description de "git bash" sont:

" Git bash" est un shell msys inclus dans "Git pour Windows", et est une version allégée de Cygwin (une ancienne version en plus), dont le seul but est de fournir suffisamment de couche POSIX pour exécuter une bash.


Rappel:

msysGit est l'environnement de développement pour compiler Git pour Windows. C'est complet, dans le sens où il vous suffit d'installer msysGit, puis vous pouvez construire Git. Sans installer de logiciel tiers.

msysGit n'est pas Git pour Windows; c'est un programme d'installation qui installe Git - et seulement Git .

Voir plus dans " Différence entre msysgit et Cygwin + git? ".

VonC
la source
2
je veux savoir ce que cela signifie!
DRAJI
@DRAJI voulez-vous dire que ma réponse ne couvrait pas ce que vous vouliez savoir?
VonC
@DRAJI y a-t-il d'autres détails que vous souhaiteriez connaître sur " git bash"?
VonC
Bien sûr. Mais avant tout, je veux savoir juste une description en deux lignes à ce sujet. Après cela, je vais passer à l'étape suivante.
DRAJI
3
par exemple, quelle est la différence entre UNIX Bash et Git Bash?
Alexander Mills
22

Je pense que le poseur de question pense (pensait) que git bash est une commande comme git init ou git checkout . Git bash n'est pas une commande , c'est une interface . Je suppose également que le demandeur n'est pas un utilisateur linux car bash est très populaire dans le monde unix / linux. Le nom "bash" est un acronyme pour " B ourne A gain SH ell". Bash est une interface de commande textuelle qui possède des fonctionnalités permettant d'exécuter des scripts automatisés. Une bonne analogie serait de comparer bash à la nouvelle analogie (mais celle qui sera probablement plus facilement comprise par plus de gens) est la combinaison des interface PowerShell dans Windows7 / 8. Un pauvreinvite de commande et des fichiers de commande .BAT (batch) de l'époque de DOS et des premières versions de Windows.

RÉFÉRENCES:

OMY
la source
10

Bash est une interface de ligne de commande qui a été créée il y a plus de vingt-sept ans par Brian Fox en remplacement de logiciel libre pour Bourne Shell. Un shell est un type spécifique d'interface de ligne de commande. Bash est "open source", ce qui signifie que n'importe qui peut lire le code et suggérer des changements. Depuis ses débuts, il a été soutenu par une large communauté d'ingénieurs qui ont travaillé pour en faire un outil incroyable. Bash est le shell par défaut pour Linux et Mac. Pour ces raisons, Bash est le shell le plus utilisé et le plus largement distribué.

Windows a une interface de ligne de commande différente, appelée Invite de commandes. Bien que cela ait beaucoup des mêmes fonctionnalités que Bash, Bash est beaucoup plus populaire. En raison de la force de la communauté open source et des outils qu'elle fournit, maîtriser Bash est un meilleur investissement que maîtriser l'invite de commande.

Pour utiliser Bash sur un ordinateur Windows, nous devons télécharger et installer un programme appelé Git Bash. Git Bash (Is the Bash pour Windows) nous permet d'accéder facilement à Bash ainsi qu'à un autre outil appelé Git, dans l'environnement Windows.

Juan Francisco Garcia Gonzalez
la source
1
En passant, la CLI actuelle pour Windows est PowerShell. L'ancien shell CMD basé sur DOS est toujours là pour la compatibilité, mais MSFT concentre toute son attention sur PS. C'est plutôt sympa, vraiment, de prendre les fonctionnalités orientées tubes des shells basés sur Unix (bash, sh, csh, ksh, zsh, etc.) et de les étendre pour permettre le passage d'objets, plutôt que du texte.
Peter Halverson
3

À la base, Git est un ensemble de programmes utilitaires de ligne de commande conçus pour s'exécuter dans un environnement de ligne de commande de style Unix. Les systèmes d'exploitation modernes tels que Linux et macOS incluent tous deux des terminaux de ligne de commande Unix intégrés. Cela rend les systèmes d'exploitation Linux et macOS complémentaires lorsque vous travaillez avec Git. Microsoft Windows utilise à la place l'invite de commande Windows, un environnement de terminal non Unix.

Qu'est-ce que Git Bash?

Git Bash est une application pour les environnements Microsoft Windows qui fournit une couche d'émulation pour une expérience de ligne de commande Git. Bash est un acronyme pour Bourne Again Shell. Un shell est une application de terminal utilisée pour s'interfacer avec un système d'exploitation via des commandes écrites. Bash est un shell par défaut populaire sur Linux et macOS. Git Bash est un package qui installe Bash, certains utilitaires bash courants et Git sur un système d'exploitation Windows.

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

Abhijeet C'kar
la source
2
"Git est un ensemble de programmes utilitaires de ligne de commande conçus pour s'exécuter sur un environnement de ligne de commande de style Unix" ... vrai, et pas surprenant, étant donné que Git a été créé par Linus Torvalds ( en.wikipedia.org/wiki/Linus_Torvalds )
VonC