在 WSL bash 上,您可以在当前目录上调用窗口的 gitk 吗?

arv*_*vil 6 windows-subsystem-for-linux

假设您正在使用 WSL cli bash,然后您想gitk在当前工作目录上使用Windows,您可以这样做吗?

问候,

Joh*_*han 6

我来到这里是因为我也想做同样的事。不过,在我最终成功启动 gitk 二进制文件后,它显然无法找到源代码,因为 Windows 二进制文件不知道 WSL 格式的文件位置。即我在 WSL 中的文件位于/mnt/c/git/foobar.

您可能可以创建一些符号链接或应用一些其他智能技巧来使目录结构相同,但我走了另一条路;在 Windows 上安装 X 服务器并安装 elf-64 版本的 gitk。有几个选项,但这是我的工作配置:

  • 从https://sourceforge.net/projects/vcxsrv/安装 VcXsrv
    • 在安装过程中,我选择将X服务器设置为0
  • 从 Windows 开始菜单启动 XLaunch
  • 从 WSL 上的 Ubuntu,
    • sudo apt install gitk
    • echo export DISPLAY=:0 >> ~/.bashrc && source ~/.bashrc
    • cd /mnt/c/git/foobar && gitk --all


Ben*_*ank 6

如果您安装了 Windows 版 Git,则可以gitk.exe直接从 WSL 命令行调用 gitk,而无需安装任何其他软件。

唯一需要注意的是 gitk 的 Windows 版本不理解 WSL 路径,只能理解 Windows 路径。这意味着您只能gitk.exe 从您的存储库中调用。换句话说,如果/mnt/c/Users/arvil/working/my-repo是 Git 存储库,则执行以下操作:

$ cd /mnt/c/Users/arvil/working/my-repo && gitk.exe
$ cd /mnt/c/Users/arvil/working/my-repo/src && gitk.exe
Run Code Online (Sandbox Code Playgroud)

但是从外部调用它不会:

$ gitk.exe /mnt/c/Users/arvil/working/my-repo
$ cd /mnt/c/Users/arvil/another-repo && gitk.exe ../my-repo
$ cd /mnt/c/Users/arvil/working && gitk.exe my-repo  # even this fails!
Run Code Online (Sandbox Code Playgroud)

基本上,如果您需要将路径传递给 gitk,它将不起作用。