Unable to commit when git hooks use bash syntax.
See original GitHub issueDescribe the feature or problem you’d like to solve
Our project have git hooks that were written for Mac and Linux but I am in windows. WSL is my dev env and can run these hooks but Github desktop will not run any git commands in WSL behind the scenes.
Github desktop is unusable by many devs using WSL.
When a git hook is run via GitHub desktop we see: Commit failed - exit code 1 received, with output: ‘’.’ is not recognized as an internal or external command, operable program or batch file.’
Also tried using bash as my shell. Also tried adding “bash -c” etc into the git hooks that run but then I get “bash is not a recognized command” even tho it IS recognized by all my shells.
Proposed solution
Please add WSL integration || or actually use the shell to run already working git cli so that desktop is just an interface running git commands behind the scenes would be nice.
Additional context
Some context… the hooks are php files with #!/usr/bin/env php
<?php They run additional commands also with shell executions/passthrough. I tried editing those to add `bash -c` etc however and see "bash is not a recognized command" Even who it IS a recognized command in windows and works for all my shells. 🤷♀️ I have seen people talking about editing the source to add custom shells but its easier to just not use Github. I don't have the option of not using WSL or editing the git hooks to support windows at this stage.Issue Analytics
- State:
- Created 3 years ago
- Comments:8 (2 by maintainers)
Top GitHub Comments
I see that issue says “Fixed not being able to run the GitHub command from the WSL CLI” which is not what I am talking about. I meant that git commands are run in the user’s shell behind the scenes to avoid all the issues.
Example: In Github desktop, I click commit and it runs
WSL "git commit -m \"the commit message\""
Running git itself in the users chosen shell means it bypasses having to add special support for the bash syntax or detecting and running git hooks in the appropriate manner according to the shebang lines in the script. Doing it this way means what shell is installed or what version of bash.exe is used doesn’t matter. The correct version of PHP or node or anything else needed to be run by a shebang line will be of no concern if native git command is run in the wsl ditrol.
Just bypass all of it and use Github desktop to execute commands for you as if you were in the terminal.
yeah pretty much. 2 years later and we still cant use github desktop with wsl at all.