windows上的msysgit--如果有,我应该注意什么?

windows上的msysgit--如果有,我应该注意什么?,windows,git,version-control,msysgit,Windows,Git,Version Control,Msysgit,这与最近发生的另一件事有关 安装msysgit时,安装程序会显示与系统路径相关的3个选项: 永远不要改变windows环境。使用此选项,您必须使用“bash”shell来处理git 将git\bin目录添加到PATH环境变量中,但不要覆盖某些内置的windows工具。同事ian Gabe Moothart认为这个选项会使一些git操作失败!这些行动是什么?我应该担心他们吗 与2相同,但覆盖某些默认系统工具。这些工具是什么?窗户的哪些部分依赖于它们?这在实践中会有伤害吗 我想到了另一个问题,与系统

这与最近发生的另一件事有关

安装msysgit时,安装程序会显示与系统路径相关的3个选项:

  • 永远不要改变windows环境。使用此选项,您必须使用“bash”shell来处理git

  • 将git\bin目录添加到PATH环境变量中,但不要覆盖某些内置的windows工具。同事ian Gabe Moothart认为这个选项会使一些git操作失败!这些行动是什么?我应该担心他们吗

  • 与2相同,但覆盖某些默认系统工具。这些工具是什么?窗户的哪些部分依赖于它们?这在实践中会有伤害吗

  • 我想到了另一个问题,与系统路径无关

    如果我的项目目录中有符号链接和硬链接怎么办?git知道如何处理这些问题吗?或者,它会受到无限递归的影响吗?比如说,目录结构是这样的,某个文件夹实际上是指向其父文件夹之一的符号链接?

    在windows上(这在其他系统上不是什么问题,我很谦虚地认为…),您必须非常了解crlf问题,并注意(除非他们在最新版本的Git中改变了这一点,我相信他们可能已经改变了——或者如果您使用的是非常旧的Git版本),autocrlf默认启用,与所有其他Git安装不同

    另外请注意,除非您使用最新版本的msysgit(如果我从邮件列表中正确回忆的话,本周即将推出),否则您的存储库大小不能超过2GB

    此外,Windows非常不区分大小写,但/有时/保留大小写—记住这一点!(这并不一定会混淆git—但它可以而且确实会混淆git repo的用户)

    最后,git在windows上的速度要比在linux上慢得多,尽管它(以我有限的经验)比其他选择要快

    现在,关于路径


    除非我弄错了,否则您应该能够确保主git二进制文件位于路径中,然后该二进制文件应该负责引用其他git组件……但我没有对此进行测试。

    如果您打算从cygwin提示符运行git,MSYS git安装程序建议选择2。cygwin环境确保git依赖项在您的路径中。如果您选择此选项,然后从windows命令提示符调用git,则将找不到git所依赖的所有unix-y命令行实用程序。IIRC,git本身部分实现为bash脚本。我不知道哪些操作会失败,但我认为git不会以这种方式可用

    我没有选项3覆盖的系统工具列表(安装程序中提到find.exe),但这只会影响到您是批处理脚本忍者。在命令行中,
    find
    现在将引用该名称的unix实用程序,而不是windows附带的exe。它不会以任何方式损害windows本身


    只需使用剪刀运行并选择选项3:-)

    您可能需要注意:

    • 所有git命令都不存在。在2009年3月初的MSysGit1.6.2上:archimport、cvsexportcommit、cvsimport、cvsserver、filter branch、instaweb、send email和shell。)

    • 在MSysGit1.6.2之前,git svn是()。
      问题是git svn需要subversion的perl绑定,您只能将它们构建为可动态加载的模块。MSysGit的perl版本不支持动态加载模块

    • 有关MSysGit的所有详细信息最好在


    无论您选择哪个选项,您都会得到
    bash
    ,后者只是添加了在它之外使用Git的方法

    对于后一个选项,msysgit将常见Linux实用程序的Windows版本添加到
    路径
    。这包括
    查找
    杀死
    排序
    ,以及
    cp
    ls
    rm
    ,以及大约20-30个其他

    前3个(以及类似的)的问题是,它们存在于OSs中,并且在每个OSs中的功能不同

    如果你知道你将使用哪一个,这不是一个巨大的考验,但是任何开发的应用程序都会期待一个,然后得到另一个,这肯定会让你大吃一惊


    为了防止冲突,在Git仍能按预期工作的情况下,您可以创建一个简单的批处理脚本,只为会话调整路径。(例如,
    readygit.bat

    相应地调整
    C:\Git\bin
    。但是,只需运行此命令并在
    cmd
    中使用Git即可

    使用此选项,您可以使用安装选项3并安全地从系统的
    路径中删除
    C:\Git\bin
    ,从而消除Windows应用程序的任何混淆,而不会混淆Git


    我目前在应用程序中使用类似的脚本,包括
    find

    当您在Windows上使用Windows GUI并创建第一个存储库时,不要为存储库目录键入名称“.git”。(然后它会创建一个,然后在下面创建另一个.git文件夹,当你最后想看的时候)浏览到包含你的源代码的文件夹,然后——只需选择那个文件夹!将为您创建存储库目录“.get”

    然后在未分级的更改中看到文件,单击文件名旁边的小页面图标,将其移动到分级更改中


    一定要用剪刀跑,然后选择选项3。没有人再从windows命令行使用kill、sort或find了。

    AFAIK,windows总是保留大小写。当名称为“全部大写”时,Windows资源管理器将其显示为小写,但文件保留为大写。这是错误的,但如果您找到支持文章,则会有所帮助。:)这
    @echo off
    setlocal
    set PATH=C:\Git\bin;%PATH%
    cmd