Git Bash的确切含义是什么?


94

吉特·巴什

最近两天我一直在与Git Bash合作。我知道现在的基本操作,例如commitpushpullfetch,和merge。但我仍然不知道是什么混帐击本身实际上是!

我搜索了很多有关Git Bash的信息,但是我看到的所有站点都集中在其命令的功能上。对于我的问题,我仍然没有找到好的答案。现在,我想,我来对地方了!


4
人们可能对我关于SuperUser的问题也很感兴趣,无论如何,Windows的Git Bash是什么?
十八年

没有“ Git bash”之类的东西。有“ bash”和“ git”。Bash是一个交互式命令行解释器,出于历史原因,有时也称为“ sh”或“ shell”,类似于Microsoft的“ cmd”。还有就是然而,“混帐壳”,这是用来限制匿名访问的git服务器电源一个“锁定”命令解释器,并且是git的发行版的一部分。由于git是类似UNIX的系统开发的并且是针对类似UNIX的系统开发的,因此最好与“ bash” CLI搭配使用,尽管从理论上讲,它与外壳无关。
Hatebit

Answers:


78

git bash是一个shell,其中:

请参阅“修复msysGit便携式$HOME位置”:

在Windows 64上:

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

这不同于git-cmd.bat,后者在普通的DOS命令提示符下提供git命令。

GitHub for Windows(G4W)之类的工具为git提供了不同的shell(包括PowerShell)


2015年4月更新

注意:Windows 1.9.5的msysgit / Git中的git bash是旧的:

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

但是随着逐步淘汰msysgit(2015年第四季度)和新的Windows版Git(2015年第二季度),您现在有了适用于Windows 2.3.5的Git
它具有基于64位msys2项目的最新bash,它是基于现代Cygwin(POSIX兼容性层)和MinGW-w64的MSYS的独立重写,目的是更好地与本机Windows软件互操作。msys2也带有自己的安装程序

git bash现在是(带有用于Windows的新Git):

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

原始答案(2013年6月)更准确地说,来自msygit Wiki

从历史上看,仅使用Cygwin正式支持Windows上的Git。
为了帮助制作本机Windows版本,该项目基于mingw fork开始了

为了使项目名称的乳白色“汤”更加清晰,我们这样说:

  • msysGit-是该项目的名称,这是Windows版Git的构建环境,它将发布官方二进制文件
  • MinGW-是用于本机Microsoft Windows应用程序的简约开发环境。
    它实际上是Microsoft Runtime上非常薄的编译时层。因此,MinGW程序是真正的Windows程序,没有Unix样式的路径或POSIX细微之处(如fork()调用)的概念
  • MSYS-是Bourne Shell命令行解释器系统,由MinGW(及其他公司)使用,过去是从Cygwin派生
  • Cygwin-类似Linux的环境,过去曾用于构建Windows的Git,如今与msysGit无关

因此,关于“ git bash”的两行描述是:

Git bash”是“ Git for Windows”中包含的msys shell,并且是Cygwin的精简版(当时是旧版),其唯一目的是提供足够的POSIX层来运行bash。


提醒:

msysGit是用于Windows编译Git的开发环境。就您只需要安装msysGit而言,然后就可以构建Git而言,它是完整的。无需安装任何第三方软件。

msysGit不是Windows的Git。那是一个安装程序,它只能安装Git

请参阅“ msysgit与Cygwin + git之间的区别? ”中的更多内容。


2
我只想知道这个意思!
DRAJI

@DRAJI您的意思是我的答案没有涵盖您想知道的内容吗?
VonC

@DRAJI您是否想了解有关“ git bash”的更多详细信息?
VonC

当然。但是首先我只想知道两行描述,之后我将继续下一步。
DRAJI

3
例如,UNIX Bash和Git Bash有什么区别?
2014年

22

我认为提问者的问题是(一直)认为git bash是像git initgit checkout这样的命令。Git bash不是命令,而是接口我还将假定asker不是Linux用户,因为bash在unix / linux世界中非常流行。名称“的bash”是“的首字母缩写ourne增益SH ELL”。Bash是纯文本命令界面,具有允许运行自动脚本的功能。一个很好的类比是将bash与Windows7 / 8中的新PowerShell界面进行比较。一个穷人类推(但更容易为更多人所理解)是将命令提示符和.BAT(批处理)命令文件结合在一起,而该文件来自DOS时代和Windows的早期版本。

参考资料:


10

Bash是一个命令行界面,由Brian Fox在二十七年前创建,它是Bourne Shell的免费软件替代品。Shell是一种特定的命令行界面。Bash是“开源的”,这意味着任何人都可以阅读代码并提出更改建议。从一开始,它就得到了众多工程师的支持,这些工程师一直致力于使其成为令人难以置信的工具。Bash是Linux和Mac的默认外壳。由于这些原因,Bash是使用最多且分布最广泛的Shell。

Windows有一个不同的命令行界面,称为命令提示符。尽管它具有与Bash相同的许多功能,但Bash更为流行。由于开放源代码社区及其提供的工具的优势,掌握Bash比掌握Command Prompt更好。

要在Windows计算机上使用Bash,我们需要下载并安装一个名为Git Bash的程序。Git Bash(Windows的Bash)使我们能够在Windows环境中轻松访问Bash以及另一个名为Git的工具。


1
顺便说一句,当前Windows的CLI是PowerShell。古老的基于DOS的CMD外壳仍然具有兼容性,但是MSFT将所有精力都集中在PS上。确实,这非常不错,它采用了基于Unix的shell(bash,sh,csh,ksh,zsh等)的面向管道的功能,并将其扩展为允许传递对象,而不仅仅是文本。
彼得·哈弗森

3

Git的核心是一组命令行实用程序,旨在在Unix风格的命令行环境中执行。像Linux和macOS这样的现代操作系统都包含内置的Unix命令行终端。使用Git时,这使Linux和macOS成为互补的操作系统。相反,Microsoft Windows使用Windows命令提示符(非Unix终端环境)。

什么是Git Bash?

Git Bash是用于Microsoft Windows环境的应用程序,它为Git命令行体验提供了一个仿真层。Bash是Bourne Again Shell的首字母缩写。Shell是用于通过书面命令与操作系统进行交互的终端应用程序。Bash是Linux和macOS上流行的默认Shell。Git Bash是一个软件包,可以在Windows操作系统上安装Bash,一些常见的bash实用程序和Git。

来源:https : //www.atlassian.com/git/tutorials/git-bash


2
“ Git是一组旨在在Unix风格的命令行环境中执行的命令行实用程序” ...确实如此,考虑到Git由Linus Torvalds(en.wikipedia.org/wiki/Linus_Torvalds
VonC
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.