Qual è il significato esatto di Git Bash?


94

Git Bash

Ho lavorato con Git Bash negli ultimi due giorni. So che ora le operazioni di base, come commit, push, pull, fetch, e merge. Ma io ancora non so cosa Git Bash per sé è in realtà!

Ho cercato molto su Git Bash, ma tutti i siti che ho visto si concentrano sulla funzionalità dei suoi comandi. Non ho ancora trovato una buona risposta alla mia domanda. Ora, penso di essere nel posto giusto per ottenere questa risposta!


4
Le persone potrebbero anche essere interessate alla mia domanda su SuperUser Che cos'è Git Bash per Windows comunque?
geneorama

Non esistono cose come "Git bash". C'è "bash" e c'è "git". Bash è un interprete interattivo della riga di comando, a volte chiamato anche semplicemente "sh" o "shell" per ragioni storiche, analogamente al "cmd" di Microsoft. V'è , tuttavia, "guscio git", che è un interprete di comandi "locked-down" utilizzato per limitare il potere di accesso anonimo ai server git, ed è parte della distribuzione git. Poiché git è stato sviluppato su e per sistemi simili a UNIX, è meglio abbinarlo alla CLI "bash", sebbene, in teoria, sia indipendente dalla shell.
Hatebit

Risposte:


78

git bash è una shell dove:

Vedere " Correzione della $HOMEposizione portatile msysGit ":

Su un Windows 64:

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

Questo è diverso da git-cmd.bat, che fornisce comandi git in un semplice prompt dei comandi DOS.

Uno strumento come GitHub per Windows (G4W) fornisce una shell diversa per git (inclusa una PowerShell)


Aggiornamento aprile 2015 :

Nota: git bash in msysgit / Git per windows 1.9.5 è vecchio:

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

Ma con l' eliminazione graduale di msysgit (4 ° trimestre 2015) e il nuovo Git per Windows (2 ° trimestre 2015), ora hai Git per Windows 2.3.5 .
Ha una bash molto più recente, basata sul progetto msys2 a 64 bit , una riscrittura indipendente di MSYS, basata sui moderni Cygwin (livello di compatibilità POSIX) e MinGW-w64 con l'obiettivo di una migliore interoperabilità con il software Windows nativo. msys2viene fornito anche con il proprio programma di installazione .

Il git bash è ora (con il nuovo Git per Windows):

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

Risposta originale (giugno 2013) Più precisamente, dal wiki di msygit :

Storicamente, Git su Windows era supportato ufficialmente solo utilizzando Cygwin.
Per aiutare a creare una versione nativa di Windows, è stato avviato questo progetto, basato sul fork mingw .

Per rendere più chiara la 'zuppa' lattiginosa dei nomi dei progetti, diciamo così:

  • msysGit - è il nome di questo progetto, un ambiente di compilazione per Git per Windows, che rilascia i binari ufficiali
  • MinGW : è un ambiente di sviluppo minimalista per applicazioni Microsoft Windows native.
    È davvero un livello molto sottile in fase di compilazione su Microsoft Runtime; I programmi MinGW sono quindi veri programmi Windows, senza il concetto di percorsi in stile Unix o sottigliezze POSIX come una fork()chiamata
  • MSYS - è un sistema interprete a riga di comando di Bourne Shell, è utilizzato da MinGW (e altri), è stato biforcato in passato da Cygwin
  • Cygwin - un ambiente simile a Linux, che è stato utilizzato in passato per creare Git per Windows, oggi non ha alcuna relazione con msysGit

Quindi, le tue due righe di descrizione su "git bash" sono:

" Git bash" è una shell msys inclusa in "Git per Windows", ed è una versione ridotta di Cygwin (una vecchia versione per questo), il cui unico scopo è fornire un livello POSIX sufficiente per eseguire una bash.


Promemoria:

msysGit è l'ambiente di sviluppo per compilare Git per Windows. È completo, nel senso che devi solo installare msysGit, quindi puoi compilare Git. Senza installare alcun software di terze parti.

msysGit non è Git per Windows; questo è un programma di installazione che installa Git - e solo Git .

Vedi di più in " Differenza tra msysgit e Cygwin + git? ".


2
Voglio sapere solo il significato di questo!
DRAJI

@DRAJI vuoi dire che la mia risposta non copre ciò che volevi sapere?
VonC

@DRAJI ci sono altri dettagli che vorresti sapere su " git bash"?
VonC

Ovviamente. Ma prima di tutto voglio sapere solo due righe di descrizione a riguardo, dopodiché farò un passo successivo.
DRAJI

3
per esempio, qual è la differenza tra UNIX Bash e Git Bash?
Alexander Mills

22

Penso che la domanda che si pone sia (fosse) pensare che git bash sia un comando come git init o git checkout . Git bash non è un comando , è un'interfaccia . Assumerò anche che il richiedente non sia un utente Linux perché bash è molto popolare nel mondo unix / linux. Il nome "bash" è l'acronimo di " B ourne A gain SH ell". Bash è un'interfaccia di comando di solo testo che dispone di funzionalità che consentono l'esecuzione di script automatici. Una buona analogia sarebbe confrontare bash con la nuova interfaccia di PowerShell in Windows7 / 8. Un poverol'analogia (ma probabilmente sarà più facilmente compresa da più persone) è la combinazione del prompt dei comandi e dei file di comando .BAT (batch) dai tempi del DOS e delle prime versioni di Windows.

RIFERIMENTI:


10

Bash è un'interfaccia a riga di comando che è stata creata più di ventisette anni fa da Brian Fox come sostituto del software gratuito per Bourne Shell. Una shell è un tipo specifico di interfaccia a riga di comando. Bash è "open source", il che significa che chiunque può leggere il codice e suggerire modifiche. Fin dal suo inizio, è stato supportato da una vasta comunità di ingegneri che hanno lavorato per renderlo uno strumento incredibile. Bash è la shell predefinita per Linux e Mac. Per questi motivi, Bash è la shell più utilizzata e ampiamente distribuita.

Windows ha un'interfaccia della riga di comando diversa, chiamata Prompt dei comandi. Sebbene abbia molte delle stesse caratteristiche di Bash, Bash è molto più popolare. A causa della forza della comunità open source e degli strumenti che fornisce, la padronanza di Bash è un investimento migliore rispetto alla padronanza del prompt dei comandi.

Per usare Bash su un computer Windows, dobbiamo scaricare e installare un programma chiamato Git Bash. Git Bash (Is the Bash per Windows) ci consente di accedere facilmente a Bash e ad un altro strumento chiamato Git, all'interno dell'ambiente Windows.


1
Per inciso, l'attuale CLI per Windows è PowerShell. L'antica shell CMD basata su DOS è ancora disponibile per compatibilità ma MSFT concentra tutta la sua attenzione su PS. È piuttosto carino, davvero, prendere le funzionalità orientate alle pipe delle shell basate su Unix (bash, sh, csh, ksh, zsh, ecc.) Ed estenderle per consentire il passaggio di oggetti, anziché solo testo.
Peter Halverson,

3

Fondamentalmente, Git è un insieme di programmi di utilità della riga di comando progettati per essere eseguiti in un ambiente a riga di comando in stile Unix. I sistemi operativi moderni come Linux e macOS includono entrambi terminali a riga di comando Unix integrati. Questo rende i sistemi operativi Linux e macOS complementari quando si lavora con Git. Microsoft Windows utilizza invece il prompt dei comandi di Windows, un ambiente terminale non Unix.

Cos'è Git Bash?

Git Bash è un'applicazione per ambienti Microsoft Windows che fornisce un livello di emulazione per un'esperienza da riga di comando Git. Bash è l'acronimo di Bourne Again Shell. Una shell è un'applicazione terminale utilizzata per interfacciarsi con un sistema operativo tramite comandi scritti. Bash è una popolare shell predefinita su Linux e macOS. Git Bash è un pacchetto che installa Bash, alcune utilità bash comuni e Git su un sistema operativo Windows.

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


2
"Git è un insieme di programmi di utilità a riga di comando progettati per essere eseguiti su un ambiente a riga di comando in stile Unix" ... vero, e non sorprende, considerando che Git è stato creato da Linus Torvalds ( en.wikipedia.org/wiki/Linus_Torvalds )
VonC
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.