Qual è il significato esatto di Git Bash?

Git Bash

Ho lavorato con Git Bash negli ultimi due giorni. Ora so le operazioni di base come commit , push , pull , fetch e merge . Ma non so ancora cosa sia Git Bash 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 per la mia domanda. Ora, penso, sono nel posto giusto per ottenere questa risposta!

    git bash è una shell dove:

    • il processo in esecuzione è sh.exe (pacchetto con msysgit , come share/WinGit/Git Bash.vbs )
    • git è un comando conosciuto
    • $HOME è definito

    Vedi ” Fix msysGit Portable $HOME location “:

    Su un Windows 64:

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

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

    Uno strumento come GitHub per Windows (G4W) fornisce shell differenti per git (incluso uno di 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 la graduale eliminazione di msysgit (quarto trimestre 2015) e del nuovo Git For Windows (2 ° trimestre 2015), ora avete Git per Windows 2.3.5 .
    Ha una base 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’objective di migliorare l’interoperabilità con il software nativo di Windows. msys2 il proprio programma di installazione .

    Il git bash è ora (con il nuovo Git For 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, da wiki di msygit :

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

    Per rendere più chiara la zuppa lattea dei nomi dei progetti, diciamo in questo modo:

    • 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 native Microsoft Windows.
      È davvero uno strato in fase di compilazione molto sottile su Microsoft Runtime; I programmi MinGW sono quindi veri programmi Windows, senza alcun concetto di percorsi in stile Unix o sottigliezze POSIX come una chiamata a fork()
    • MSYS – è un sistema di interprete della riga di comando di Bourne Shell, è utilizzato da MinGW (e altri), è stato biforcato in passato da Cygwin
    • Cygwin – un ambiente simile a Linux, usato in passato per build Git per Windows, al giorno d’oggi non ha relazione con msysGit

    Quindi, la descrizione delle due righe su “git bash” sono:

    Git bash ” è una shell msys inclusa in “Git for Windows” ed è una versione ridotta di Cygwin (una vecchia versione), il cui unico scopo è quello di 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 e quindi puoi creare 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? “.

    Penso che l’interrogante sia (stava) pensando che git bash è un comando come git init o git checkout . Git bash non è un comando , è un’interfaccia . Assumerò anche che il richiedente non è 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 con funzionalità che consentono l’esecuzione di script automatici. Una buona analogia sarebbe quella di confrontare bash con la nuova interfaccia di PowerShell in Windows7 / 8. Una scarsa analogia (ma che può essere compresa più facilmente da più persone) è la combinazione del prompt dei comandi e dei file di comando .BAT (batch) dai tempi di DOS e delle prime versioni di Windows.

    RIFERIMENTI: