这与我最近提出的另一个问题有关.
安装msysgit时,安装程序会显示与系统路径相关的3个选项:
永远不要改变Windows环境.使用此选项,您必须使用"bash"shell来使用git.
将git\bin目录添加到PATH环境变量,但不覆盖一些内置的Windows工具.stackoverflow-ian Gabe Moothart 在评论中告诉我,这个选项会让一些git操作失败!这些操作是什么?我应该担心吗?
与2相同但覆盖一些默认系统工具.这些工具是什么?窗户的哪些部分依赖于它们?这会伤到实践吗?
我想到了另一个问题,与系统PATH无关.
如果我的项目目录中有符号链接和硬链接怎么办?git知道如何处理这些吗?或者,它是否会遭受无限递归,如果说,目录结构是这样的,某些文件夹实际上是其父亲之一的符号链接?
bash
无论你选择哪个选项,你都会得到,后面的选项只是添加了在它之外使用Git的方法.
对于后一种选择,msysgit添加了Windows常用Linux实用程序PATH
.这包括find
,kill
和sort
,以及cp
,ls
,rm
,和大约20-30人.
前三个(和类似的)的问题在于它们存在于两个OS中并且在每个OS中具有不同的功能.
如果你知道你将使用哪一个,那么这并不是一个巨大的考验,但是任何开发出来的应用程序都会期待一个并且获得另一个应用程序肯定会变得合适.
为了防止冲突,在仍然按预期运行Git的同时,您可以创建一个PATH
仅针对会话进行调整的简单批处理脚本.(例如readygit.bat
)
@echo off setlocal set PATH=C:\Git\bin;%PATH% cmd
相应调整C:\Git\bin
.但是,只需运行它并在其中使用Git cmd
.
有了这个,您可以使用安装选项3并安全地C:\Git\bin
从系统中删除PATH
,消除对Windows应用程序的任何混淆,而不会混淆Git.
我目前使用与GnuWin应用程序类似的脚本,包括find
.
您可能想要注意:
所有的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的所有细节都在他们的MSysGitHerald Github wiki中得到了最好的解释