![](/img/trans.png)
[英]How to customize which terminal is used by the “Git Bash Here” command of msysgit's shell extension?
[英]msysgit bash shell- how to troubleshoot “cannot find command”
我需要帮助获取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中有没有办法验证命令搜索路径是否符合预期?
好的,我找到了断开连接。 直到我开始从shell运行“echo $ PATH”(而不是来自windows命令shell的echo%PATH%,它有不同的结果),这是难以捉摸的。
两个问题:
当我配置环境变量时,我最初在路径的末尾有一个'\\'。 这似乎导致echo $ PATH显示无效的路径名,如'/ c:/ directory'而不是'/ c / directory /。
需要重新启动才能更改通过Windows UI进行的系统环境变量,以反映在msysgit / bash / git shell中。
除了在$ PATH中,它们还需要是可执行的。 所以,在Cygwin中(因为你在你的问题中使用了“%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-diffall
或git-diffall.sh
具体取决于实际名称。
我今天遇到同样的问题,但解决方案不在这里,所以我将加两分钱。
如果您在Windows中设置%HOME%路径 - 请确保:
C:\\Program Files (x86)\\Git
(或者你安装它的任何地方)视为root /
并将/bin
添加到字面上,类似于命令PATH=$HOME/bin:$PATH
。 因此,如果您的%HOME%
是C:\\Program Files (x86)\\Git
您将从//bin:
开始$ PATH //bin:
这显然是不正确的。 警告,从git 2.0.X / 2.1(2014年第3季度)开始, git diffall
将始终返回“ command not found
”:它已被删除。
见Jonathan Nieder( jrn
) 提交的502b0a1 (在Tim Henigan( thenigan
)的帮助下):
contrib
:删除git-diffall
当在v1.7.11(2012年6月)中添加了
--dir-diff
选项时 ,contrib/
中的“git diffall
”脚本的功能被合并到“git difftool
”中。
一旦difftool
学会了这些功能,diffall
脚本就会过时。行为的唯一区别在于,当与工作树进行比较时,
difftool
在diff工具退出时将用户修改的任何文件复制回工作树。
“git diffall
”需要--copy-back
选项才能执行相同的操作。
所有其他diffall
选项在difftool
具有相同的含义。通过删除旧的
diffall
脚本,让人们更轻松地选择要使用的工具。 发行说明中的指针应足以帮助当前用户迁移。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.