当前位置: 首页 > 知识库问答 >
问题:

Git bash的确切含义是什么?

宗政金鹏
2023-03-14

这两天我一直在和Git Bash合作。我现在知道了诸如commitpushpullfetchmerge等基本操作。但我还是不知道Git Bash本身到底是什么!

我已经搜索了很多关于Git Bash的内容,但是我看到的所有站点都集中在它的命令的功能上。我仍然没有为我的问题找到一个好的答案。现在,我想,我在正确的地方得到这个答案!

共有1个答案

夏俊杰
2023-03-14

git bash是一个shell,其中:

  • 运行进程为sh.exe(与msysgit一起打包,作为share/wingit/git bash.vbs)
  • git是已知命令
  • $home已定义

请参阅“修复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年第四季度)和新的Git For Windows(2015年第二季度),您现在有了用于Windows 2.3.5的Git。
它有了一个更新的更新,基于64bits msys2项目,一个MSYS的独立重写,基于现代Cygwin(POSIX兼容层)和MinGW-w64,目的是与本机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分叉启动了这个项目。

    null

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

提醒:

msysGit是编译用于Windows的Git的开发环境。它是完整的,从这个意义上说,您只需要安装msysGit,然后就可以构建Git了。无需安装任何第三方软件。

 类似资料:
  • (...)当您在非托管环境中使用JmsTemplate时,您可以通过使用属性SessionTransact和SessionAccountingEmode来指定这些值(事务和确认模式)。 当您将PlatformTransactionManager与JmsTemplate一起使用时,模板总是被赋予一个事务性JMS会话。(..) (顺便说一句,这是真的--会话是事务性的) 我调试了它不正确的原因,发现:

  • 问题内容: 我是JAVA的新手,因此遇到了这个词。“在方法内部创建的类,在Java中称为本地内部类。如果要调用本地内部类的方法,则必须在方法内部 实例化 该类”。粗体字。任何人都可以帮我解决这个问题。我知道这很尴尬,我应该做更多的研究,但我只是不明白。谢谢。 问题答案: 首先 声明的意思是 : 实例化的 简单含义 是从class创建一个对象 。 什么是物体? 类的实例。从一个类中,我们可以创建许多

  • 问题内容: 我想在同一类对象的各种实例之间共享一个对象。 从概念上讲,在我的程序运行时,类A的所有对象都访问类B的相同对象。 我已经看到这是系统范围的,不鼓励使用它。这是否意味着如果我在实例化类A的对象的同一JVM上运行另一个程序,则这些对象可能会访问与先前程序中访问的对象相同的B对象? 使用静态字段的一般缺陷是什么? 是否有其他选择(不需要大量的实施工作)? 问题答案: 静态不是完全意味着“由所

  • 我在网上搜索了“Gradle classpath site:stackoverflow.com”和“Gradle classpath”,只在以下文件中找到相关信息: Gradle:What is the difference between classpath and compile dependencies? 余登宝的回答是这样写的: 编译'org.hibernate:hibernate-cor

  • 问题内容: 我在Oracle过程中使用诸如“ where 0 =0”之类的语句时有些困惑?有人可以澄清一下吗?即使我们进行动态选择,即使在查询中附加了实际条件,为什么还要添加此语句呢?条件会否影响结果集?..我经历了如何选择列包含字符串中任何单词的所有行?但我完全理解使用“ where 0= 0”的原因。有人可以给我使用这种条件的正确理由吗? 提前致谢..;) 问题答案: 使用动态sql时,可能需

  • 这听起来可能是一个太基本的问题,但我已经寻找了答案,现在我比以前更困惑了。 在git中将我的分支合并到另一个分支时,“我们的”和“他们的”是什么意思?这两个分支都是“我们的”。 在合并冲突中,“我们的”总是显示的两个版本的上部吗? “我们的”是否总是指合并开始时HEAD指向的分支?如果是这样的话,为什么不使用像“current branch's”这样清晰的所有格指称,而不是使用像“ours”这样在