jjzjj

windows - Windows 版 Git-scm、msysGit 和 Git 之间的差异

coder 2023-06-23 原文

git-scm有什么区别(从 git-scm.com 下载)和 msysGit(托管在 Google CodeGithub 上,可能还有其他)?它们看起来非常相似,即使我有 git-scm,我也应用了为 msysGit 指定的修复程序,它们似乎工作正常。

另外,如果有的话,哪个是 Git for Windows ,并且都被称为 Git Bash ,或者两者都有 Git Bash shell ,还是只有两者之一?

最佳答案

网站git-scm.com是版本控制软件 Git 的官方网站。没有“Git-SCM”,它只是源代码控制管理 (SCM) 软件的 URL——名称只是 Git .最初为 Linux 编写的原始 Git 软件只能作为在 Windows 上不易编译的源代码使用。

If you are just interested in installing Git on Windows, then you can stop reading here and just download a Windows build from the official website.



适用于 Windows 的 Git

Git for Windows是致力于为 Windows 构建 native Git 版本的项目。 Windows 版本可供下载 on the official Git website ,它们有 32 位和 64 位版本。

Windows 版 Git 建立在 MSYS2(MinGW 的一部分)之上,它提供了一个最小的类 Unix shell 环境,用于运行 Git 的所有组件,这些组件不是用 native 代码编写的(很多 Git 是编写的)作为 shell 脚本)。为了用MSYS2搭建Git,项目组有专门的“Git for Windows SDK”,基本上就是在Windows上搭建Git所需的整个搭建环境,来了with everything你需要开始研究 Git 本身。

项目自有维护fork of Git它与原始 Git 项目保持同步,但包含一组在 Windows 上构建它所需的补丁。 Windows 版 Git releases通常在正式版发布后会有短暂的延迟发布(尽管有时会跳过版本)。

管理系统

在 Git 版本 2 之前,适用于 Windows 的 Git 二进制文件由名为 msysGit 的项目发布。 ,这是 Git for Windows 项目的前身。该项目于 2015 年 8 月 18 日退役,转而使用重建的 Git for Windows SDK 开发环境启动 Git for Windows 项目。新项目大多是由同一个团队开始的。

虽然许多人认为 msysGit 是 Git 二进制文件的名称,但实际上这是他们创建的开发环境的名称。它基于 MSYS,这是 MSYS2 重新启动之前的旧版本和过时版本。 MSYS 的糟糕状态是 Windows 项目 Git 以完全改造的构建环境启动的原因之一。

该项目基本上发布了三样东西:msysGit、Windows 版 Git 和 Windows 版可移植 Git。 msysGit 安装程序将安装和设置在 Windows 上构建 Git 所需的开发环境,就像现在 Git for Windows SDK 所做的那样。 Windows 版 Git 是一个可以在 Windows 机器上安装 Git 的安装程序,而 Windows 版的可移植 Git 只是您不必安装的二进制文件。请注意,它们的所有版本都是作为“预览”版本发布的,这意味着它们不是完全受支持的版本。尽管如此,该项目非常成熟,发布版本非常稳定,事实上是在 Windows 上设置 Git 的最佳方式。

git bash

如上所述,很多 Git 都是写成 shell 脚本的。为了执行这些脚本,Git for Windows 使用 Bash与 MSYS2 捆绑在一起(因此 Bash 作为它的解释器)。

Git Bash 通常指的是 Git for Windows 安装程序创建的快捷方式。它会启动一个运行 Bash 的全功能控制台窗口,因此您可以使用 Git 以及一组常见的命令行工具或 Unix 程序(如 lessawkgrep ,甚至文本编辑器 vim )。特别是对于经验不足的用户,Git Bash 是与 Git 交互的常用方式,尽管您可以在更多以 Windows 为中心的环境中轻松使用它,例如 PowerShell .

从 Git 版本 2 开始,Git Bash 将默认在 MinTTY 中启动,一个 terminal emulator随 MSYS2 一起提供,即使对于不习惯控制台体验的用户也可以轻松使用。

即使您决定在 Windows 版 Git 设置期间不向 PATH 添加任何 Git 可执行文件,了解 Git Bash 也将始终有效也很有用。但是,我个人的建议是将 Git 可执行文件(只是 Git 可执行文件,在安装过程中选择“从 Windows 命令提示符使用 Git”选项)到 PATH。这样,您可以从其他 shell(cmd.exe 或 PowerShell)使用 Git,其他程序也可以访问它(例如,许多库甚至 IDE 集成都希望 PATH 中的 Git 可执行文件与 Git 存储库交互)。

关于windows - Windows 版 Git-scm、msysGit 和 Git 之间的差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22310007/

有关windows - Windows 版 Git-scm、msysGit 和 Git 之间的差异的更多相关文章

  1. ruby - 在 Ruby 程序执行时阻止 Windows 7 PC 进入休眠状态 - 2

    我需要在客户计算机上运行Ruby应用程序。通常需要几天才能完成(复制大备份文件)。问题是如果启用sleep,它会中断应用程序。否则,计算机将持续运行数周,直到我下次访问为止。有什么方法可以防止执行期间休眠并让Windows在执行后休眠吗?欢迎任何疯狂的想法;-) 最佳答案 Here建议使用SetThreadExecutionStateWinAPI函数,使应用程序能够通知系统它正在使用中,从而防止系统在应用程序运行时进入休眠状态或关闭显示。像这样的东西:require'Win32API'ES_AWAYMODE_REQUIRED=0x0

  2. ruby - 将差异补丁应用于字符串/文件 - 2

    对于具有离线功能的智能手机应用程序,我正在为Xml文件创建单向文本同步。我希望我的服务器将增量/差异(例如GNU差异补丁)发送到目标设备。这是计划:Time=0Server:hasversion_1ofXmlfile(~800kiB)Client:hasversion_1ofXmlfile(~800kiB)Time=1Server:hasversion_1andversion_2ofXmlfile(each~800kiB)computesdeltaoftheseversions(=patch)(~10kiB)sendspatchtoClient(~10kiBtransferred)Cl

  3. ruby-on-rails - Rails 应用程序之间的通信 - 2

    我构建了两个需要相互通信和发送文件的Rails应用程序。例如,一个Rails应用程序会发送请求以查看其他应用程序数据库中的表。然后另一个应用程序将呈现该表的json并将其发回。我还希望一个应用程序将存储在其公共(public)目录中的文本文件发送到另一个应用程序的公共(public)目录。我从来没有做过这样的事情,所以我什至不知道从哪里开始。任何帮助,将不胜感激。谢谢! 最佳答案 无论Rails是什么,几乎所有Web应用程序都有您的要求,大多数现代Web应用程序都需要相互通信。但是有一个小小的理解需要你坚持下去,网站不应直接访问彼此

  4. ruby - #之间? Cooper 的 *Beginning Ruby* 中的错误或异常 - 2

    在Cooper的书BeginningRuby中,第166页有一个我无法重现的示例。classSongincludeComparableattr_accessor:lengthdef(other)@lengthother.lengthenddefinitialize(song_name,length)@song_name=song_name@length=lengthendenda=Song.new('Rockaroundtheclock',143)b=Song.new('BohemianRhapsody',544)c=Song.new('MinuteWaltz',60)a.betwee

  5. ruby-on-rails - `a ||= b` 和 `a = b if a.nil 之间的区别? - 2

    我正在检查一个Rails项目。在ERubyHTML模板页面上,我看到了这样几行:我不明白为什么不这样写:在这种情况下,||=和ifnil?有什么区别? 最佳答案 在这种特殊情况下没有区别,但可能是出于习惯。每当我看到nil?被使用时,它几乎总是使用不当。在Ruby中,很少有东西在逻辑上是假的,只有文字false和nil是。这意味着像if(!x.nil?)这样的代码几乎总是更好地表示为if(x)除非期望x可能是文字false。我会将其切换为||=false,因为它具有相同的结果,但这在很大程度上取决于偏好。唯一的缺点是赋值会在每次运行

  6. ruby - 在 Windows 机器上使用 Ruby 进行开发是否会适得其反? - 2

    这似乎非常适得其反,因为太多的gem会在window上破裂。我一直在处理很多mysql和ruby​​-mysqlgem问题(gem本身发生段错误,一个名为UnixSocket的类显然在Windows机器上不能正常工作,等等)。我只是在浪费时间吗?我应该转向不同的脚本语言吗? 最佳答案 我在Windows上使用Ruby的经验很少,但是当我开始使用Ruby时,我是在Windows上,我的总体印象是它不是Windows原生系统。因此,在主要使用Windows多年之后,开始使用Ruby促使我切换回原来的系统Unix,这次是Linux。Rub

  7. Vscode+Cmake配置并运行opencv环境(Windows和Ubuntu大同小异) - 2

    之前在培训新生的时候,windows环境下配置opencv环境一直教的都是网上主流的vsstudio配置属性表,但是这个似乎对新生来说难度略高(虽然个人觉得完全是他们自己的问题),加之暑假之后对cmake实在是爱不释手,且这样配置确实十分简单(其实都不需要配置),故斗胆妄言vscode下配置CV之法。其实极为简单,图比较多所以很长。如果你看此文还配不好,你应该思考一下是不是自己的问题。闲话少说,直接开始。0.CMkae简介有的人到大二了都不知道cmake是什么,我不说是谁。CMake是一个开源免费并且跨平台的构建工具,可以用简单的语句来描述所有平台的编译过程。它能够根据当前所在平台输出对应的m

  8. 深度学习部署:Windows安装pycocotools报错解决方法 - 2

    深度学习部署:Windows安装pycocotools报错解决方法1.pycocotools库的简介2.pycocotools安装的坑3.解决办法更多Ai资讯:公主号AiCharm本系列是作者在跑一些深度学习实例时,遇到的各种各样的问题及解决办法,希望能够帮助到大家。ERROR:Commanderroredoutwithexitstatus1:'D:\Anaconda3\python.exe'-u-c'importsys,setuptools,tokenize;sys.argv[0]='"'"'C:\\Users\\46653\\AppData\\Local\\Temp\\pip-instal

  9. git使用常见问题(提交代码,合并冲突) - 2

    文章目录git常用命令(简介,详细参数往下看)Git提交代码步骤gitpullgitstatusgitaddgitcommitgitpushgit代码冲突合并问题方法一:放弃本地代码方法二:合并代码常用命令以及详细参数gitadd将文件添加到仓库:gitdiff比较文件异同gitlog查看历史记录gitreset代码回滚版本库相关操作远程仓库相关操作分支相关操作创建分支查看分支:gitbranch合并分支:gitmerge删除分支:gitbranch-ddev查看分支合并图:gitlog–graph–pretty=oneline–abbrev-commit撤消某次提交git用户名密码相关配置g

  10. [工业相机] 分辨率、精度和公差之间的关系 - 2

    📢博客主页:https://blog.csdn.net/weixin_43197380📢欢迎点赞👍收藏⭐留言📝如有错误敬请指正!📢本文由Loewen丶原创,首发于CSDN,转载注明出处🙉📢现在的付出,都会是一种沉淀,只为让你成为更好的人✨文章预览:一.分辨率(Resolution)1、工业相机的分辨率是如何定义的?2、工业相机的分辨率是如何选择的?二.精度(Accuracy)1、像素精度(PixelAccuracy)2、定位精度和重复定位精度(RepeatPrecision)三.公差(Tolerance)四.课后作业(Post-ClassExercises)视觉行业的初学者,甚至是做了1~2年

随机推荐