¿Cuál es el significado exacto de Git Bash?

94

Git Bash

He estado trabajando con Git Bash durante los últimos dos días. Sé que ahora las operaciones básicas tales como commit, push, pull, fetch, y merge. Pero todavía no sé qué Git Bash en sí es en realidad!

He buscado mucho sobre Git Bash, pero todos los sitios que he visto se centran en la funcionalidad de sus comandos. Todavía no he encontrado una buena respuesta a mi pregunta. Ahora, creo que estoy en el lugar correcto para obtener esta respuesta.

DRAJI
fuente
4
La gente también puede estar interesada en mi pregunta sobre SuperUser ¿Qué es Git Bash para Windows de todos modos?
geneorama
No existe tal cosa como "Git bash". Hay "bash" y hay "git". Bash es un intérprete de línea de comandos interactivo, a veces también llamado simplemente "sh" o "shell" por razones históricas, análogo al "cmd" de Microsoft. Sin embargo, existe "git shell", que es un intérprete de comandos "bloqueado" que se usa para limitar el poder del acceso anónimo a los servidores git, y es parte de la distribución git. Dado que git se desarrolló en y para sistemas similares a UNIX, es mejor combinarlo con la CLI "bash", aunque, en teoría, es independiente del shell.
Hatebit

Respuestas:

78

git bash es un shell donde:

Consulte " Reparar la $HOMEubicación de msysGit Portable ":

En Windows 64:

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

Esto difiere de git-cmd.bat, que proporciona comandos git en un símbolo del sistema de DOS simple.

Una herramienta como GitHub para Windows (G4W) proporciona un shell diferente para git (incluido uno de PowerShell)


Actualización de abril de 2015 :

Nota: el git bash en msysgit / Git para Windows 1.9.5 es antiguo:

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

Pero con la eliminación gradual de msysgit (cuarto trimestre de 2015) y el nuevo Git para Windows (segundo trimestre de 2015), ahora tiene Git para Windows 2.3.5 .
Tiene un bash mucho más reciente, basado en el proyecto msys2 de 64bits , una reescritura independiente de MSYS, basada en Cygwin moderno (capa de compatibilidad POSIX) y MinGW-w64 con el objetivo de una mejor interoperabilidad con el software nativo de Windows. msys2viene con su propio instalador .

El git bash es ahora (con el nuevo Git para Windows):

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

Respuesta original (junio de 2013) Más precisamente, de msygit wiki :

Históricamente, Git en Windows solo era compatible oficialmente con Cygwin.
Para ayudar a crear una versión nativa de Windows, se inició este proyecto, basado en el bifurcación mingw .

Para hacer más clara la 'sopa' lechosa de los nombres de los proyectos, decimos así:

  • msysGit : es el nombre de este proyecto, un entorno de compilación para Git para Windows, que lanza los binarios oficiales
  • MinGW : es un entorno de desarrollo minimalista para aplicaciones nativas de Microsoft Windows.
    Es realmente una capa de tiempo de compilación muy delgada sobre Microsoft Runtime; Los programas MinGW son, por tanto, programas reales de Windows, sin el concepto de rutas de estilo Unix o sutilezas POSIX como unfork() llamada
  • MSYS : es un sistema de intérprete de línea de comandos de Bourne Shell, es utilizado por MinGW (y otros), se bifurcó en el pasado por Cygwin
  • Cygwin : un entorno similar a Linux, que se usó en el pasado para construir Git para Windows, hoy en día no tiene relación con msysGit

Entonces, su descripción de dos líneas sobre "git bash" es:

" Git bash" es un shell de msys incluido en "Git para Windows", y es una versión reducida de Cygwin (una versión antigua), cuyo único propósito es proporcionar suficiente capa POSIX para ejecutar un bash.


Recordatorio:

msysGit es el entorno de desarrollo para compilar Git para Windows. Está completo, en el sentido de que solo necesita instalar msysGit y luego puede compilar Git. Sin instalar ningún software de terceros.

msysGit no es Git para Windows; ese es un instalador que instala Git, y solo Git .

Vea más en "¿ Diferencia entre msysgit y Cygwin + git? ".

VonC
fuente
2
¡Quiero saber el significado de eso!
DRAJI
@DRAJI, ¿quieres decir que mi respuesta no cubrió lo que querías saber?
VonC
@DRAJI, ¿hay más detalles que le gustaría saber sobre " git bash"?
VonC
Por supuesto. Pero antes que nada, quiero saber solo una descripción de dos líneas sobre eso. Después de eso, daré el siguiente paso.
DRAJI
3
por ejemplo, ¿cuál es la diferencia entre UNIX Bash y Git Bash?
Alexander Mills
22

Creo que el autor de la pregunta es (estaba) pensando que git bash es un comando como git init o git checkout . Git bash no es un comando , es una interfaz . También asumiré que el autor de la pregunta no es un usuario de linux porque bash es muy popular en el mundo de Unix / Linux. El nombre "bash" es un acrónimo de " B ourne A gain SH ell". Bash es una interfaz de comando de solo texto que tiene características que permiten ejecutar scripts automatizados. Una buena analogía sería comparar bash con la nueva PowerShell interfaz de en Windows7 / 8. Un pobreLa analogía (pero una que probablemente sea más fácilmente comprendida por más personas) es la combinación del símbolo del sistema y los archivos de comandos .BAT (por lotes) de los días de DOS y las primeras versiones de Windows.

REFERENCIAS:

OMY
fuente
10

Bash es una interfaz de línea de comandos que Brian Fox creó hace más de veintisiete años como un reemplazo de software gratuito para Bourne Shell. Un shell es un tipo específico de interfaz de línea de comandos. Bash es de "código abierto", lo que significa que cualquiera puede leer el código y sugerir cambios. Desde sus inicios ha contado con el apoyo de una gran comunidad de ingenieros que han trabajado para convertirla en una herramienta increíble. Bash es el shell predeterminado para Linux y Mac. Por estas razones, Bash es el shell más utilizado y ampliamente distribuido.

Windows tiene una interfaz de línea de comandos diferente, llamada Símbolo del sistema. Si bien tiene muchas de las mismas características que Bash, Bash es mucho más popular. Debido a la fuerza de la comunidad de código abierto y las herramientas que proporciona, dominar Bash es una mejor inversión que dominar el símbolo del sistema.

Para usar Bash en una computadora con Windows, necesitamos descargar e instalar un programa llamado Git Bash. Git Bash (Is the Bash para Windows) nos permite acceder fácilmente a Bash así como a otra herramienta llamada Git, dentro del entorno de Windows.

Juan Francisco García González
fuente
1
Aparte, la CLI actual para Windows es PowerShell. El antiguo shell CMD basado en DOS todavía existe por compatibilidad, pero MSFT centra toda su atención en PS. En realidad, es bastante bueno tomar las características orientadas a tuberías de los shells basados ​​en Unix (bash, sh, csh, ksh, zsh, etc.) y extenderlas para permitir pasar objetos, en lugar de solo texto.
Peter Halverson
3

En esencia, Git es un conjunto de programas de utilidad de línea de comandos que están diseñados para ejecutarse en un entorno de línea de comandos estilo Unix. Los sistemas operativos modernos como Linux y macOS incluyen terminales de línea de comandos Unix incorporados. Esto hace que los sistemas operativos Linux y macOS sean complementarios cuando se trabaja con Git. En cambio, Microsoft Windows utiliza el símbolo del sistema de Windows, un entorno de terminal que no es Unix.

¿Qué es Git Bash?

Git Bash es una aplicación para entornos de Microsoft Windows que proporciona una capa de emulación para una experiencia de línea de comandos de Git. Bash es un acrónimo de Bourne Again Shell. Un shell es una aplicación de terminal que se utiliza para interactuar con un sistema operativo a través de comandos escritos. Bash es un shell predeterminado popular en Linux y macOS. Git Bash es un paquete que instala Bash, algunas utilidades de bash comunes y Git en un sistema operativo Windows.

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

Abhijeet C'kar
fuente
2
"Git es un conjunto de programas de utilidad de línea de comandos que están diseñados para ejecutarse en un entorno de línea de comandos de estilo Unix" ... cierto, y no es sorprendente, considerando que Git fue creado por Linus Torvalds ( en.wikipedia.org/wiki/Linus_Torvalds )
VonC