When I run the git-gui in git bash on windows 10 I get "line 3: exec: wish: not found"
I did a fresh installation of git with version 2.24.0.windows.2
with similar options as mentioned in the question.
I ran the which
command on git-bash to get the path from where git-gui is being executed.
$ which -a git-gui
/cmd/git-gui
Check if /cmd
is there in your PATH
using echo $PATH
in git bash or check if C:/Git/cmd
is there in your PATH
using echo %PATH%
in Windows cmd. If not, then you can add it to your PATH
variable (either Windows cmd or git-bash).
If the which
command yields multiple paths, check if /cmd/git-gui
executes well from git bash and remove the other paths(caution! refers to multiple paths found for git-gui
) from the PATH
variable.
I get the same error though when I assume that /cmd
is not in my path
# Simulate an empty PATH variable
$ export PATH=:
# Run git-gui from git-core directory
$ C:/Git/mingw64/libexec/git-core/git-gui
C:/Git/mingw64/libexec/git-core/git-gui: line 3: exec: wish: not found
Another case where multiple paths exist for git-gui :
# Simulate PATH variable with the following directories
$ export PATH=/usr/bin:/mingw64/libexec/git-core/:/cmd
# Run git-gui
$ git-gui
/mingw64/libexec/git-core/git-gui: line 3: exec: wish: not found
# Lists the paths
$ which -a git-gui
/mingw64/libexec/git-core/git-gui
/cmd/git-gui
Note:
which
command can be used to Write the full path of COMMAND(s) to standard output.
and the argument
-a
is used to Print all matches in PATH, not just the first
I found a closed issue on git for Windows GitHub repository. Seems unrelated at first sight, however on seeing the commit message of the fix it provides some background on why you might be facing the error.
git-gui (Windows): use git-gui.exe in
Create Desktop Shortcut
When calling
Repository>Create Desktop Shortcut
, Git GUI assumes that it is okay to callwish.exe
directly on Windows. However, in Git for Windows 2.x' context, that leaves several crucial environment variables uninitialized, resulting in a shortcut that does not work.To fix those environment variable woes, Git for Windows comes with a convenient
git-gui.exe
, so let's just use it when it is available.This fixes #448
Signed-off-by: Johannes Schindelin
As highlighted in the commit message above, the author clearly points out to use git-gui.exe
located in the /cmd
directory.
As a final note, I would suggest OP to :
- Check
PATH
variable of Windows cmd and git-bash for conflicting directories containinggit-gui
usingwhere
andwhich
commands respectively (Windows cmdPATH
env is passed on to git-bash) - Simulate an empty
PATH
variable as I have shown above and add only/cmd
to thePATH
variable of git-bash and then check if you are able to rungit-gui
from git-bash - Confirm if
git-gui
runs in Windows cmd - Check if you are adding the directory to the env variable
PATH
correctly (Windows cmd and git bash) - Try running
git-gui
andgit gui
, do both the commands in git-bash give the same error ?
I've been using git and the git gui command on windows for about 2 years with no issues. Recently, I installed ubuntu on windows 10 and enabled the windows subsystem for linx (wsl) and installed git in the ubuntu bash, thinking I'd run git command from there. Ever since, git is quite broken when I use the git bash as part of git for windows.
To reproduce this, I
- Setup a Windows 10 VM (Build 1909, Single Language Home Edition)
Install git for windows version
2.24.0.windows.2
- Git installation location :
C:\Git
- Similar options as you mention in the question except for the editor
ObservationsC:\Git\cmd
is added to thePATH
environment variable of Windows cmd (and therefore git-bash too)
- Similar options as you mention in the question except for the editor
- Both the commands
git-gui
andgit gui
work from git-bash
- Git installation location :
Turn on Windows feature
Windows Subsystem for linux
forBash on Ubuntu Windows
- Install Ubuntu app from Microsoft store (Ubuntu 18.04)(git was pre-installed)
- Update git to the latest version using this
- git works both for bash and windows running at
2.24.0
and2.24.0.windows.2
respectively - Both the commands
git gui
andgit-gui
work as expected from git-bash - Uninstalled ubuntu for bash and turned off wsl, and it still works
Further debugging can be done using git's environment variables.
GIT_EXEC_PATH
determines where Git looks for its sub-programs (like git-commit, git-diff, and others). You can check the current setting by running git --exec-path.
- Run this command
git --exec-path
on git-bash, and verify if it shows :C:/Git/mingw64/libexec/git-core
GIT_TRACE
controls general traces, which don’t fit into any specific category. This includes the expansion of aliases, and delegation to other sub-programs.
- Run this command
GIT_TRACE=1 git gui
, and show the output (which includes the resolved exec directory forgit-gui
)
GIT_CONFIG_NOSYSTEM, if set, disables the use of the system-wide configuration file. This is useful if your system config is interfering with your commands, but you don’t have access to change or remove it.
- Try running this command
GIT_CONFIG_NOSYSTEM=1 git gui
You can open a new issue here, if nothing else works.