3

我需要帮助让 git 扩展与 msysgit 一起运行。我对扩展 git-tfs 和 git-fetchall 运气不好,在这两种情况下都是同一个问题。该插件需要将文件放置在 git 可以找到的位置(git-tfs.exe 和 git-fetchall.sh)。我理解这意味着文件需要位于“PATH”环境变量中的目录中。在这两种情况下,我都陷入了困境:

$ git-diffall
bash: git-diffall: command not found

或者:

$ git-tfs
bash: git-tfs: command not found

当我从常规命令 shell 运行 echo %PATH% 时,它显示我的路径变量包括 git-diffall 和 git-tfs 所在的目录。我该如何调试这个,或者我错过了什么?msysgit 中有没有办法验证命令搜索路径是我所期望的?

4

4 回答 4

8

好的,我找到了断开连接。直到我开始从 shell 运行“echo $PATH”(而不是从 windows 命令 shell 中 echo %PATH%,它有不同的结果)之前,它是难以捉摸的。

两个问题:

  1. 当我配置环境变量时,我原来在路径末尾有一个'\'。这似乎导致 echo $PATH 显示无效的路径名,例如“/c:/directory”而不是“/c/directory/”。

  2. 必须重新启动才能通过 Windows UI 对系统环境变量进行更改以反映在 msysgit/bash/git shell 中。

于 2010-04-18T23:12:25.123 回答
1

除了在 $PATH 中之外,它们还需要是可执行的。因此,在 Cygwin 中(我假设是 Windows,因为您在问题中使用了“%PATH%”而不是“$PATH”,这是 Windows 特有的东西),您应该导航到程序git-difall所在的目录,然后输入:

chmod a+x git-diffall

此外,与忽略“.exe”、“.com”、“.bat”等扩展名的 Windows 不同,BASH 确实关心这些扩展名,所以如果你git-diffall.sh在你的路径上,你需要调用它git-diffall.sh而不是作为git-diffall. 如果您想将其调用为git-diffall,则只需删除文件扩展名。您也可以使用 Cygwin 命令行执行此操作,使用:

mv git-diffall.sh git-diffall

此外,第一个chmod需要使用git-diffallgit-diffall.sh取决于实际名称。

于 2010-04-18T22:46:24.383 回答
1

我今天遇到了同样的问题,但没有解决方案,所以我会加两分钱。

如果您在 Windows 中设置了 %HOME% 路径 - 请确保:

  1. 它是在-user-环境设置中创建的,而不是在-system-设置中创建的。git 本身似乎可以正确使用系统变量,但 GitExtensions 仅从用户变量中获取 HOME。
  2. 它不等于 Git 基目录。问题是 msysgit 将C:\Program Files (x86)\Git(或安装它的任何地方)视为 root/并添加/bin到它的字面上类似于 command PATH=$HOME/bin:$PATH。因此,如果您%HOME%C:\Program Files (x86)\Git$PATH,那么您的 $PATH//bin:显然是不正确的。
于 2011-06-16T14:42:03.380 回答
0

警告,从 git 2.0.X/2.1(2014 年第三季度)开始,git diffall始终返回“ command not found”:它已被删除。

请参阅Jonathan Nieder ( )的提交 502b0a1(在Tim Henigan ( )的协助下):jrnthenigan

contrib: 消除git-diffall

在 v1.7.11(约 2012 年 6 月)中添加选项时,git diffall”脚本的功能contrib/被合并到“ git difftool”中。 一旦了解了这些功能,脚本就过时了。--dir-diff
difftooldiffall

行为上的唯一区别是,与工作树进行比较difftool时,当差异工具退出时,将用户修改的任何文件复制回工作树。
" git diffall" 需要--copy-back选项来做同样的事情。
所有其他diffall选项在 中具有相同的含义difftool

diffall通过删除旧脚本,让人们选择要使用的工具更轻松。发行说明中的​​指针应该足以帮助当前用户迁移。

于 2014-07-27T08:26:58.487 回答