GitHub Desktop now supports Git hooks, solving compatibility issues with version managers and environment-dependent scripts.

The problem

Historically, Git hooks have been problematic in GitHub Desktop. Because Desktop ships with its own embedded Git installation (especially on Windows), your hooks often failed when they relied on your shell environment, version managers like nvm, or tools not present in Desktop’s stripped-down Git. Additionally, you couldn’t distinguish between a hook rejection and other Git failures, and terminal escape codes in hook output rendered as garbled text.

These issues have affected users for years, making hooks one of the most requested features for Desktop.

What’s new

Your hooks now have access to all the environment variables available in your shell, picking them up from configuration files like .bash_profile or .zshrc.

You can enable hooks support in Settings/Options > Git > Hooks:

Screenshot of GitHub Desktop preferences showing the hooks support toggle

When hooks run, you’ll see real-time output with proper terminal colors and formatting, making it easy to understand what’s happening:

You can also preemptively skip commit hooks by clicking the gear icon in the commit message box, or bypass a failed hook after the fact without aborting your commit:

Screenshot showing the option to bypass commit hooks in the GitHub Desktop commit interface

Other improvements in 3.5.5

This release also includes:

  • Warp terminal support for Windows (thanks @Cocodrulo!)
  • Open a repository in a different editor without changing your default preference (thanks @jackfreem!)
  • Right-click on any branch to quickly view it on GitHub (thanks @DylanDevelops!)
  • Fixed crashes when Git output contains emoji or multibyte characters
  • Fixed repository state issues when switching between branches with submodules
  • Copilot-authored commits now display the Copilot avatar

Getting started

Automatic updates will roll out progressively, or you can download the release from GitHub Desktop v3.5.5. Have feedback or run into issues? Open an issue in the open source GitHub Desktop repository.