【问题标题】:What is the exact meaning of Git Bash?Git Bash 的确切含义是什么?
【发布时间】:2013-07-22 08:43:01
【问题描述】:

Git 重击

过去两天我一直在使用 Git Bash。我现在知道commitpushpullfetchmerge等基本操作。但我仍然不知道 Git Bash 本身到底是什么!

我搜索了很多关于 Git Bash 的内容,但我看到的所有网站都关注其命令的功能。我仍然没有为我的问题找到一个好的答案。现在,我想,我来对地方了!

【问题讨论】:

  • 人们也可能对我在超级用户What is Git Bash for Windows anyway?的问题感兴趣
  • 没有“Git bash”之类的东西。有“bash”,也有“git”。 Bash 是一个交互式命令行解释器,由于历史原因,有时也称为“sh”或“shell”,类似于 Microsoft 的“cmd”。然而,,“git shell”,它是一个“锁定”命令解释器,用于限制匿名访问 git 服务器的能力,它是 git 发行版的一部分。由于 git 是在 onfor 类 UNIX 系统上开发的,因此最好与“bash”CLI 搭配使用,尽管理论上它与 shell 无关。

标签: git-bash


【解决方案1】:

Git 的核心是一组命令行实用程序,旨在在 Unix 风格的命令行环境中执行。 Linux 和 macOS 等现代操作系统都包含内置的 Unix 命令行终端。这使得 Linux 和 macOS 在使用 Git 时成为互补的操作系统。 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

【讨论】:

  • “Git 是一组命令行实用程序,旨在在 Unix 风格的命令行环境中执行”... 是的,并不奇怪,因为 Git 是由 Linus Torvalds 创建的(@ 987654322@)
【解决方案2】:

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

Windows 有一个不同的命令行界面,称为命令提示符。虽然它具有许多与 Bash 相同的功能,但 Bash 更受欢迎。由于开源社区的力量和他们提供的工具,掌握 Bash 是比掌握命令提示符更好的投资。

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

【讨论】:

  • 顺便说一句,当前适用于 Windows 的 CLI 是 PowerShell。古老的基于 DOS 的 CMD shell 仍然存在以实现兼容性,但 MSFT 将所有注意力都集中在 PS 上。非常好,真的,采用基于 Unix 的 shell(bash、sh、csh、ksh、zsh 等)的面向管道的特性并扩展它们以允许传递对象,而不仅仅是文本。
【解决方案3】:

我认为提问者是(曾经)认为 git bash 是一个类似 git initgit checkout 的命令。 Git bash 不是一个命令,它是一个接口我还假设提问者不是 linux 用户,因为 bash 在Unix/Linux 世界。名称“bash”是“Bourne Again SHell”的首字母缩写。 Bash 是一个纯文本命令界面,具有允许运行自动化脚本的功能。一个的类比是将 bash 与 Windows7/8 中的新 PowerShell 界面进行比较。一个糟糕的类比(但可能更容易被更多人理解)是 DOS 时代的 命令提示符 和 .BAT(批处理)命令文件的组合和早期版本的 Windows。

参考文献:

【讨论】:

    【解决方案4】:

    git bash 是一个 shell,其中:

    见“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 年第四季度)和新的Git For Windows(2015 年第二季度),您现在有了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 运行时的一个非常薄的编译时层;因此,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 的安装程序——而且只有 Git

    在“Difference between msysgit and Cygwin + git?”中查看更多信息。

    【讨论】:

    • 我想知道那是什么意思!
    • @DRAJI 你的意思是我的回答没有涵盖你想知道的吗?
    • @DRAJI 关于“git bash”您还想了解更多详情吗?
    • 当然。但首先我只想知道两行描述。在那之后我会采取下一步行动。
    • 比如,UNIX Bash 和 Git Bash 有什么区别?
    猜你喜欢
    • 2017-10-13
    • 2011-12-14
    • 1970-01-01
    • 2011-05-06
    • 2014-10-23
    • 2017-04-19
    • 2015-08-02
    • 2015-06-02
    相关资源
    最近更新 更多