【问题标题】:`gitk` program found using the `where` command but cannot be executed?使用`where`命令找到`gitk`程序但无法执行?
【发布时间】:2015-11-01 14:31:48
【问题描述】:

我正在尝试在 Windows 上运行 gitk,但控制台给了我:

'gitk' is not recognized as an internal or external command,
operable program or batch file.

但是,我可以做到

> where gitk
C:\Program Files (x86)\Git\bin\gitk

怎么来的?

【问题讨论】:

  • 也许该目录不在您的默认搜索路径中?如果您将其显式运行为“C:\Program Files (x86)\Git\bin\gitk”会发生什么?
  • 好指针,我刚刚意识到虽然 git\bin 文件夹中的大多数二进制文件都是 exe 文件,但 gitk 是一个 Linux bash 脚本。我可能需要通过git gui 运行它。
  • git guigitk 是两个不同的程序。
  • 是的,但 git gui 在控制台中工作,gitk 然后可以从 Git GUI 对话框中执行。

标签: windows git path gitk


【解决方案1】:

更新:窃取 OP 的评论:

感谢(冗长的)解释,对我来说最简单的解决方法是从旧的 msysGit (1.9.5) 版本迁移到更新的“Git for Windows”版本,该版本具有适用于 gitk 的适当 Windows 包装器。


gitk 与大多数 git 命令不同,它是一个调用 Tcl 的 shell 脚本。

如果您检查gitk 可执行文件本身,它的前几行是:

#!/bin/sh
# Tcl ignores the next line -*- tcl -*- \
exec wish "$0" -- "$@"

(至少在我的 Linux 系统上是这样的;gitk 的 Windows 安装程序可能会改变这一点。)

在类 Unix 系统上,第一行称为 "shebang",告诉系统调用 /bin/sh 来执行文件,而不是直接执行。

第三行执行wish命令,将脚本作为Tcl脚本执行。

如果您在 Windows 系统上安装了 Tcl,您应该能够使用以下方式将 gitk 作为 Tcl 脚本运行:

C:\> tclsh "C:\Program Files (x86)\Git\bin\gitk"

(免责声明:我没有尝试过。)

您还可以将命令的名称从 gitk 更改为 gitk.tcl 并在 Windows 中设置文件关联,以便正确调用它。 (我有点惊讶 Windows git 安装程序没有为您执行此操作。)

有关在 Windows 上运行 Tcl 脚本的更多信息,请访问here

this question 讨论了在 Windows 上从上下文菜单而不是从命令行调用 gitk

【讨论】:

  • 感谢您的(冗长的)解释,对我来说最简单的解决方法是从旧的 msysGit (1.9.5) 版本迁移到新的“Git for Windows”版本,该版本具有适当的 Windows 包装器混蛋。
  • 我偷了你的评论并将其添加到我的答案中。
猜你喜欢
  • 2015-07-23
  • 1970-01-01
  • 2014-05-26
  • 2011-01-26
  • 2015-12-17
  • 1970-01-01
  • 2019-08-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多