Problem
Committing from the IDE fails for a project opened in a local Dev Container on a Windows host. The Git tool window's Console tab shows one of the following, and no commit is created:
fatal: could not read log file '\\devcontainer.ij\<container-id>@\home\developer\IdeaProjects\<project>\.git\MERGE_MSG': No such file or directory
fatal: could not read log file 'C:\Users\user\AppData\Local\Temp\git-commit-msg-.txt': No such file or directory
The first form appears on the merge commit that the IDE runs automatically after merge conflicts are resolved. The second appears on an ordinary commit from the Commit tool window. In both cases the path handed to git commit -F is a Windows host path, while Git itself runs inside the container and resolves POSIX paths only.
After the failure, git status still reports MERGE_HEAD and .git/MERGE_MSG in place, and running git commit from a terminal inside the container completes the commit. Not every commit fails.
Environment where this is observed:
- Windows host running Docker Desktop, project opened in a local Dev Container
- Project reachable from the host over a UNC path such as
\\devcontainer.ij\<container-id>@\home\developer\IdeaProjects\<project> - IntelliJ IDEA 2026.2.0.1 (262.8665.337), Docker Desktop 4.44.3, Git 2.43.0
Cause
The registry key git.use.eel.for.container.projects is disabled. The key controls whether Git commands for a project inside a container run through Eel, the platform layer that maps paths and process execution into a remote environment. With the key off, the container's Git binary is treated as a local executable (GitExecutable.Local) and command arguments keep their host-side Windows form, which Git inside the container cannot resolve.
The merge variant leaves a matching warning in idea.log:
WARN - #c.i.e.u.ExecUtil - Argument '\\devcontainer.ij\<container-id>@\home\developer\IdeaProjects\<project>\.git\MERGE_MSG' is not normalized for remote EEL execution, expected '/home/developer/IdeaProjects/<project>/.git/MERGE_MSG'
The ordinary-commit variant produces no warning, only the fatal: line from Git.
git.use.eel.for.container.projects is enabled by default, so a disabled value is always an override. It can be set locally as a workaround for an unrelated problem, or arrive from another machine through Settings Sync, which carries registry values as part of the system settings.
Resolution
- Press Shift twice to open Search Everywhere, type
Registryand open Registry.... - Filter on
git.use.eel.for.container.projectsand enable the key. - Restart the IDE.
- Repeat the commit or merge that failed.
To confirm the key was overridden before changing it, search idea.log for Registry values changed by user:. Only values that differ from their defaults are listed there:
INFO - #c.i.o.u.r.RegistryManager - Registry values changed by user: ..., git.use.eel.for.container.projects = false, ...
If the key was disabled deliberately to work around a different problem, re-enabling it can bring that problem back, so check what the override was for before restoring the default.
Reported as Merge commit fails with "could not read log file MERGE_MSG" in Dev Container over network/UNC mount, where restoring the default resolved the failure across repeated merge-and-commit runs.
Comments
0 comments
Please sign in to leave a comment.