过去两天我一直在与Git Bash合作。我现在知道commit
,push
,pull
,fetch
和merge
等基本操作。但我仍然不知道Git Bash 本身实际上是什么!
我搜索了很多关于Git Bash的内容,但我见过的所有网站都关注其命令的功能。我的问题仍然没有找到一个好的答案。现在,我想,我是在正确的地方得到这个答案!
答案 0 :(得分:72)
git bash是一个shell,其中包含:
sh.exe
(与msysgit一起打包,为share/WinGit/Git Bash.vbs
)$HOME
已定义请参阅“Fix msysGit Portable $HOME
location”:
在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)这样的工具提供different shell for git(包括PowerShell)
2015年4月更新:
注意:msysgit/Git for windows 1.9.5中的git bash是旧的:
GNU bash, version 3.1.20(4)-release (i686-pc-msys)
Copyright (C) 2005 Free Software Foundation, Inc.
但是使用phasing out of msysgit(2015年第4季度)和新的Git For Windows(2015年第2季度),您现在拥有Git for Windows 2.3.5。
它有一个更新的bash,基于64位msys2 project,独立重写MSYS,基于现代Cygwin(POSIX兼容层)和MinGW-w64,旨在更好地与本机Windows软件进行互操作。 msys2
也附带its own installer。
git bash现在(使用新的Git For Windows):
GNU bash, version 4.3.33(3)-release (x86_64-pc-msys)
Copyright (C) 2013 Free Software Foundation, Inc.
原始答案(2013年6月) 更准确地说,来自msygit wiki:
从历史上看,Windows上的Git只能使用Cygwin正式支持 为了帮助制作原生Windows版本,此项目已根据mingw fork 启动。
为了使项目名称的乳白色'汤'更清晰,我们这样说:
- msysGit - 是此项目的名称,是Git for Windows的构建环境,可以发布官方二进制文件
- MinGW - 是本机Microsoft Windows应用程序的极简主义开发环境 它实际上是Microsoft Runtime上非常薄的编译时层;因此,MinGW程序是真正的Windows程序,没有Unix风格路径或POSIX细节的概念,例如
fork()
调用- MSYS - 是一个Bourne Shell命令行解释器系统,由MinGW(和其他人)使用,在过去的分叉来自Cygwin
- Cygwin - 类似Linux的环境,过去用于构建Git for Windows,现在与msysGit无关
所以,关于“git bash”的两行描述是:
“Git bash
”是包含在“Git for Windows”中的msys shell,是Cygwin的缩小版本(旧版本),其唯一目的是提供足够的用于运行bash的POSIX层。
提醒:
msysGit是编译Git for Windows的开发环境。它是完整的,在某种意义上你只需要安装msysGit,然后就可以构建Git了。无需安装任何第三方软件。
msysGit不是Git for Windows;这是一个安装Git的安装程序 - 只有Git 。
在“Difference between msysgit and Cygwin + git?”中查看更多内容。
答案 1 :(得分:17)
我认为问题提示者认为 git bash 是一个像 git init 或 git checkout 这样的命令。 Git bash不是命令,它是接口。我还会假设提问者不是linux用户,因为bash很受欢迎unix / linux世界。名称“bash”是“ B 我们 A 增益 SH ell”的首字母缩写。 Bash是一个纯文本命令接口,具有允许运行自动脚本的功能。一个好的类比就是将bash与Windows7 / 8中的新 PowerShell 接口进行比较。 差类比(但可能更容易被更多人理解)是DOS时代的命令提示符和.BAT(批处理)命令文件的组合和早期版本的Windows。
参考文献:
答案 2 :(得分:3)
Bash是由Brian Fox创建于27年前的命令行界面,它是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的工具。
答案 3 :(得分:0)
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。