Portable Git Changelog

What's new in Portable Git 2.45.0 RC 1

Apr 25, 2024
  • New Features:
  • Comes with Git v2.45.0-rc1.
  • Comes with PCRE2 v10.43.
  • Comes with GNU Privacy Guard v2.4.5.
  • Comes with Git LFS v3.5.1.
  • MinGit now supports running git difftool.
  • Comes with OpenSSH v9.7.P1.
  • Comes with GNU TLS v3.8.4.
  • Comes with Tig v2.5.9.
  • Comes with cURL v8.7.1.
  • Comes with Git Credential Manager v2.5.0.
  • Bug Fixes:
  • Since v2.14.0(2), Git for Windows' installer registers the Open Git Bash here and Open Git GUI here context menu items also in the special Libraries folders, but the uninstaller never removed them from those folders, which was fixed.
  • A regression where git clone no longer worked in the presence of includeIf.*.onbranch config settings has been fixed.
  • Apparently some anti-malware programs fiddle with the mode of stdout which can lead to problems because expected output is missing, which was fixed.

New in Portable Git 2.25.0 RC 0 (Apr 20, 2024)

  • New Features:
  • Comes with Git v2.45.0-rc0.
  • Comes with PCRE2 v10.43.
  • Comes with GNU Privacy Guard v2.4.5.
  • Comes with Git LFS v3.5.1.
  • MinGit now supports running git difftool.
  • Comes with OpenSSH v9.7.P1.
  • Comes with GNU TLS v3.8.4.
  • Comes with Tig v2.5.9.
  • Comes with cURL v8.7.1.
  • Comes with Git Credential Manager v2.5.0.
  • Bug Fixes:
  • Since v2.14.0(2), Git for Windows' installer registers the Open Git Bash here and Open Git GUI here context menu items also in the special Libraries folders, but the uninstaller never removed them from those folders, which was fixed.
  • A regression where git clone no longer worked in the presence of includeIf.*.onbranch config settings has been fixed.
  • Apparently some anti-malware programs fiddle with the mode of stdout which can lead to problems because expected output is missing, which was fixed.

New in Portable Git 2.44.0 (Feb 24, 2024)

  • New Features:
  • Comes with Git v2.44.0.
  • Comes with libfido2 v1.14.0.
  • Comes with the MSYS2 runtime (Git for Windows flavor) based on Cygwin v3.4.10.
  • Comes with Perl v5.38.2.
  • Git for Windows learned to detect and use native Windows support for ANSI sequences, which allows using 24-bit colors in terminal windows.
  • Comes with Git LFS v3.4.1.
  • The repository viewer Tig that is included in Git for Windows can now be called also directly from PowerShell/CMD.
  • Comes with OpenSSH v9.6.P1.
  • Comes with Bash v5.2.26.
  • Comes with GNU TLS v3.8.3.
  • Comes with OpenSSL v3.2.1.
  • Comes with cURL v8.6.0.
  • Comes with GNU Privacy Guard v2.4.4.
  • Bug Fixes:
  • The 32-bit variant of Git for Windows was missing some MSYS2 runtime updates, which was addressed; Do note 32-bit support is phased out.
  • The Git for Windows installer showed cut-off text in some setups. This has been fixed.
  • The git credential-manager --help command previously would not find a page to display in the web browser, which has been fixed.
  • A couple of bugs that could cause Git Bash to hang in certain scenarios were fixed.

New in Portable Git 2.44.0 RC 2 (Feb 21, 2024)

  • Bug Fixes:
  • The 32-bit variant of Git for Windows was missing some MSYS2 runtime updates, which was addressed; Do note 32-bit support is phased out.
  • The Git for Windows installer showed cut-off text in some setups. This has been fixed.
  • The git credential-manager --help command previously would not find a page to display in the web browser, which has been fixed.
  • A couple of bugs that could cause Git Bash to hang in certain scenarios were fixed.

New in Portable Git 2.44.0 RC 1 (Feb 15, 2024)

  • New Features:
  • Comes with Git v2.44.0-rc1.
  • Comes with libfido2 v1.14.0.
  • Comes with the MSYS2 runtime (Git for Windows flavor) based on Cygwin v3.4.10.
  • Comes with Perl v5.38.2.
  • Git for Windows learned to detect and use native Windows support for ANSI sequences, which allows using 24-bit colors in terminal windows.
  • Comes with Git LFS v3.4.1.
  • The repository viewer Tig that is included in Git for Windows can now be called also directly from PowerShell/CMD.
  • Comes with OpenSSH v9.6.P1.
  • Comes with Bash v5.2.26.
  • Comes with GNU TLS v3.8.3.
  • Comes with OpenSSL v3.2.1.
  • Comes with cURL v8.6.0.
  • Comes with GNU Privacy Guard v2.4.4.
  • Bug Fixes:
  • The 32-bit variant of Git for Windows was missing some MSYS2 runtime updates, which was addressed; Do note 32-bit support is phased out.
  • The Git for Windows installer showed cut-off text in some setups. This has been fixed.
  • The git credential-manager --help command previously would not find a page to display in the web browser, which has been fixed.
  • A couple of bugs that could cause Git Bash to hang in certain scenarios were fixed.

New in Portable Git 2.44.0 RC 0 (Feb 10, 2024)

  • New Features:
  • Comes with Git v2.44.0-rc0.
  • Comes with gnupg v2.2.42.
  • Comes with libfido2 v1.14.0.
  • Comes with the MSYS2 runtime (Git for Windows flavor) based on Cygwin v3.4.10.
  • Comes with Perl v5.38.2.
  • Git for Windows learned to detect and use native Windows support for ANSI sequences, which allows using 24-bit colors in terminal windows.
  • Comes with Git LFS v3.4.1.
  • The repository viewer Tig that is included in Git for Windows can now be called also directly from PowerShell/CMD.
  • Comes with OpenSSH v9.6.P1.
  • Comes with Bash v5.2.26.
  • Comes with GNU TLS v3.8.3.
  • Comes with OpenSSL v3.2.1.
  • Comes with cURL v8.6.0.
  • Comes with GNU Privacy Guard v2.4.4.
  • Bug Fixes:
  • The 32-bit variant of Git for Windows was missing some MSYS2 runtime updates, which was addressed; Do note 32-bit support is phased out.
  • The Git for Windows installer showed cut-off text in some setups. This has been fixed.
  • The git credential-manager --help command previously would not find a page to display in the web browser, which has been fixed.

New in Portable Git 2.43.0 (Nov 21, 2023)

  • New Features:
  • Comes with Git v2.43.0.
  • Comes with MSYS2 runtime v3.4.9.
  • Comes with GNU TLS v3.8.1.
  • When installing into a Windows setup with Mandatory Address Space Layout Randomization (ASLR) enabled, which is incompatible with the MSYS2 runtime powering Git Bash, SSH and some other programs distributed with Git for Windows, the Git for Windows installer now offers to add exceptions that will allow those programs to work as expected.
  • Comes with OpenSSH v9.5.P1.
  • Comes with cURL v8.4.0.
  • Comes with OpenSSL v3.1.4.
  • Comes with Git Credential Manager v2.4.1.
  • Comes with Bash v5.2.21.
  • Comes with MinTTY v3.7.0.
  • Bug Fixes:
  • Symbolic links whose target is an absolute path without the drive prefix accidentally had a drive prefix added when checked out, rendering them "eternally modified". This bug has been fixed.
  • Git for Windows's installer is no longer confused by global GIT_* environment variables.
  • The installer no longer claims that "fast-forward or merge" is the default git pull behavior: The default behavior has changed in Git a while ago, to "fast-forward only".

New in Portable Git 2.43.0 RC 0 (Nov 3, 2023)

  • New Features:
  • Comes with Git v2.43.0-rc0.
  • Comes with MinTTY v3.6.5.
  • Comes with MSYS2 runtime v3.4.9.
  • Comes with GNU TLS v3.8.1.
  • When installing into a Windows setup with Mandatory Address Space Layout Randomization (ASLR) enabled, which is incompatible with the MSYS2 runtime powering Git Bash, SSH and some other programs distributed with Git for Windows, the Git for Windows installer now offers to add exceptions that will allow those programs to work as expected.
  • Comes with OpenSSH v9.5.P1.
  • Comes with cURL v8.4.0.
  • Comes with OpenSSL v3.1.4.
  • Comes with Git Credential Manager v2.4.1.
  • Bug Fixes:
  • Symbolic links whose target is an absolute path without the drive prefix accidentally had a drive prefix added when checked out, rendering them "eternally modified". This bug has been fixed.
  • Git for Windows's installer is no longer confused by global GIT_* environment variables.
  • The installer no longer claims that "fast-forward or merge" is the default git pull behavior: The default behavior has changed in Git a while ago, to "fast-forward only".

New in Portable Git 2.42.0.2 (Aug 30, 2023)

  • Bug Fixes:
  • Git for Windows v2.42.0's release notes claimed that it ships with Git LFS v3.4.0, which is incorrect and has been fixed in this release.
  • The installer option to enable support for Pseudo Consoles has been handled incorrectly since Git for Windows v2.41.0, which has been fixed.
  • Some Git commands (those producing paged output, for example) experienced a significant slow-down under certain circumstances, when running on a machine joined to a domain controller, which has been fixed.
  • As of Git for Windows v2.41.0, when installed into a location whose path contains non-ASCII characters, it was no longer possible to fetch from/push to remote repositories via https://, which has been fixed.

New in Portable Git 2.42.0 RC 2 (Aug 17, 2023)

  • New Features:
  • Comes with Git v2.42.0-rc2.
  • Comes with cURL v8.2.1.
  • Comes with Git LFS v3.4.0.
  • Comes with OpenSSL v3.1.2.
  • Comes with OpenSSH v9.4.P1.
  • Comes with Git Credential Manager v2.3.1.
  • Bug Fixes:
  • When init.defaultBranch is changed manually in the system config, subsequent Git for Windows upgrades would overwrite that change. This has been fixed.
  • When running on a remote APFS share, Git would fail, which has been fixed.

New in Portable Git 2.42.0 RC 0 (Aug 8, 2023)

  • New Features:
  • Comes with Git v2.42.0-rc0.
  • Comes with OpenSSH v9.3.P2.
  • Comes with cURL v8.2.1.
  • Comes with Git LFS v3.4.0.
  • Comes with OpenSSL v3.1.2.
  • Comes with Git Credential Manager v2.3.0.
  • Bug Fixes:
  • When init.defaultBranch is changed manually in the system config, subsequent Git for Windows upgrades would overwrite that change. This has been fixed.
  • When running on a remote APFS share, Git would fail, which has been fixed.

New in Portable Git 2.41.0.3 (Jul 14, 2023)

  • As announced previously, Git for Windows will drop support for Windows 7 and for Windows 8 in one of the next versions, following Cygwin's and MSYS2's lead (Git for Windows relies on MSYS2 for components such as Bash and Perl).
  • Following the footsteps of the MSYS2 and Cygwin projects on which Git for Windows depends, the 32-bit variant of Git for Windows is being phased out. As of Git for Windows v2.41.0, the 32-bit variant of the POSIX emulation layer (known as "MSYS2 runtime", powering Git Bash among other components shipped with Git for Windows) is in maintenance mode and will only see security bug fixes (if any). Users relying on 32-bit Git for Windows are highly encouraged to switch to the 64-bit version whenever possible.
  • This release is a hot-fix release to incorporate a new Git Credential Manager version that addresses several issues present in the previous verison. There are no other changes.
  • New Features:
  • Comes with Git Credential Manager v2.2.2.

New in Portable Git 2.41.0.2 (Jul 7, 2023)

  • New Features:
  • Comes with MSYS2 runtime v3.4.7.
  • Comes with OpenSSL v3.1.1, a major version upgrade (previously Git for Windows distributed OpenSSL v1.1.*).
  • To support interoperability with Windows Subsystem for Linux (WSL) better, it is now possible to let Git set e.g. the executable bits of files (this needs core.WSLCompat to be set, and the NTFS volume needs to be mounted in WSL using the appropriate options).
  • Bug Fixes:
  • Portable Git: The Windows version is now parsed more robustly in the post-install script.
  • The labels of the File Explorer menu items installed by the Git for Windows installer have been aligned with what is customary ("Open Git Bash Here" instead of "Git Bash Here").

New in Portable Git 2.41.0 (Jun 2, 2023)

  • New Features:
  • Comes with Git v2.41.0.
  • Comes with OpenSSH v9.3p1
  • Comes with MinTTY v3.6.4.
  • The Git for Windows installer now also includes the Git LFS documentation (i.e. git help git-lfs now works).
  • Comes with Perl v5.36.1.
  • Comes with GNU Privacy Guard v2.2.41.
  • Comes with Git Credential Manager v2.1.2.
  • Comes with MSYS2 runtime (Git for Windows flavor) based on Cygwin 3.4.6. (This does not extend to 32-bit Git for Windows, which is stuck with v3.3.* of the MSYS2 runtime forever.)
  • To help with Git for Windows' release mechanics, Git for Windows now ships with two variants of libcurl.
  • Comes with cURL v8.1.2.
  • Comes with OpenSSL v1.1.1u.
  • Bug Fixes:
  • Git GUI's Repository>Explore Working Copy was broken since v2.39.1, which has been fixed.
  • The MSYS2 runtime was adjusted to prepare for an upcoming Windows version.

New in Portable Git 2.41.0 RC 1 (May 20, 2023)

  • New Features:
  • Comes with Git v2.41.0-rc1.
  • Comes with OpenSSH v9.3p1
  • Comes with MinTTY v3.6.4.
  • The Git for Windows installer now also includes the Git LFS documentation (i.e. git help git-lfs now works).
  • Comes with Perl v5.36.1.
  • Comes with GNU Privacy Guard v2.2.41.
  • Comes with Git Credential Manager v2.1.2.
  • Comes with MSYS2 runtime (Git for Windows flavor) based on Cygwin 3.4.6. (This does not extend to 32-bit Git for Windows, which is stuck with v3.3.* of the MSYS2 runtime forever.)
  • To help with Git for Windows' release mechanics, Git for Windows now ships with two variants of libcurl.
  • Comes with cURL v8.1.0.
  • Bug Fixes:
  • Git GUI's Repository>Explore Working Copy was broken since v2.39.1, which has been fixed.
  • The MSYS2 runtime was adjusted to prepare for an upcoming Windows version.

New in Portable Git 2.41.0 RC 0 (May 17, 2023)

  • New Features:
  • Comes with Git v2.41.0-rc0.
  • Comes with OpenSSH v9.3p1
  • Comes with cURL v8.0.1.
  • Comes with MinTTY v3.6.4.
  • The Git for Windows installer now also includes the Git LFS documentation (i.e. git help git-lfs now works).
  • Comes with Perl v5.36.1.
  • Comes with GNU Privacy Guard v2.2.41.
  • Comes with Git Credential Manager v2.1.2.
  • Comes with MSYS2 runtime (Git for Windows flavor) based on Cygwin 3.4.6. (This does not extend to 32-bit Git for Windows, which is stuck with v3.3.* of the MSYS2 runtime forever.)
  • To help with Git for Windows' release mechanics, Git for Windows now ships with two variants of libcurl.
  • Bug Fixes:
  • Git GUI's Repository>Explore Working Copy was broken since v2.39.1, which has been fixed.

New in Portable Git 2.40.1 (Apr 25, 2023)

  • New Features:
  • Comes with Git v2.40.1.
  • Bug Fixes:
  • Addresses CVE-2023-29012, a vulnerability where starting Git CMD would execute doskey.exe in the current directory, if it exists.
  • Addresses CVE-2023-29011, a vulnerability where the SOCKS5 proxy called connect.exe is susceptible to picking up an untrusted configuration on multi-user machines.
  • Addresses CVE-2023-29007, a vulnerability where git submodule deinit can inadvertently introduce malicious changes into the Git config file.
  • Addresses CVE-2023-25815, a vulnerability where Git can unexpectedly show crafted "localized" messages written by another user on a multi-user machine.
  • Addresses CVE-2023-25652, a vulnerability where git apply --reject could follow symbolic links to write files outside the worktree.

New in Portable Git 2.40.0 (Mar 15, 2023)

  • New Features:
  • Comes with Git v2.40.0.
  • In the olden Git days, there were "dashed" Git commands (e.g. git-commit instead of git commit). These haven't been supported for interactive use in a really, really long time. But they still worked in Git aliases and hooks ("scripts"). Since Git v1.5.4 (released on February 2nd, 2008), it was discouraged/deprecated to use dashed Git commands even in scripts. As of this version, Git for Windows no longer supports these dashed commands.
  • Comes with tig v2.5.8.
  • Comes with Bash v5.2 patchlevel 15.
  • Comes with OpenSSL v1.1.1t.
  • Comes with GNU TLS v3.8.0.
  • Comes with cURL v7.88.1.
  • Comes with libfido2 v1.13.0.
  • Comes with Git Credential Manager v2.0.935.
  • Bug Fixes:
  • Some commands mishandled absolute paths near the drive root (e.g. scalar unregister C:/foo), which has been fixed.
  • When trying to call Cygwin (or for that matter, MSYS2) programs from Git Bash, users would frequently be greeted with cryptic error messages about a "cygheap" or even just an even more puzzling exit code 127. Many of these calls now succeed, allowing basic interactions. While it is still not possible for, say, Cygwin's vim.exe to interact with the Git Bash's terminal window, it is now possible for Cygwin's zstd.exe in conjuction with Git for Windows' tar.exe to handle .tar.zst archives.

New in Portable Git 2.40.0 RC 2 (Mar 8, 2023)

  • New Features:
  • Comes with Git v2.40.0-rc2.
  • In the olden Git days, there were "dashed" Git commands (e.g. git-commit instead of git commit). These haven't been supported for interactive use in a really, really long time. But they still worked in Git aliases and hooks ("scripts"). Since Git v1.5.4 (released on February 2nd, 2008), it was discouraged/deprecated to use dashed Git commands even in scripts. As of this version, Git for Windows no longer supports these dashed commands.
  • Comes with tig v2.5.8.
  • Comes with Bash v5.2 patchlevel 15.
  • Comes with OpenSSL v1.1.1t.
  • Comes with GNU TLS v3.8.0.
  • Comes with cURL v7.88.1.
  • Comes with libfido2 v1.13.0.
  • Comes with Git Credential Manager v2.0.935.
  • Bug Fixes:
  • Some commands mishandled absolute paths near the drive root (e.g. scalar unregister C:/foo), which has been fixed.
  • When trying to call Cygwin (or for that matter, MSYS2) programs from Git Bash, users would frequently be greeted with cryptic error messages about a "cygheap" or even just an even more puzzling exit code 127. Many of these calls now succeed, allowing basic interactions. While it is still not possible for, say, Cygwin's vim.exe to interact with the Git Bash's terminal window, it is now possible for Cygwin's zstd.exe in conjuction with Git for Windows' tar.exe to handle .tar.zst archives.

New in Portable Git 2.40.0 RC 1 (Mar 5, 2023)

  • New Features:
  • Comes with Git v2.40.0-rc1.
  • In the olden Git days, there were "dashed" Git commands (e.g. git-commit instead of git commit). These haven't been supported for interactive use in a really, really long time. But they still worked in Git aliases and hooks ("scripts"). Since Git v1.5.4 (released on February 2nd, 2008), it was discouraged/deprecated to use dashed Git commands even in scripts. As of this version, Git for Windows no longer supports these dashed commands.
  • Comes with tig v2.5.8.
  • Comes with Bash v5.2 patchlevel 15.
  • Comes with OpenSSL v1.1.1t.
  • Comes with GNU TLS v3.8.0.
  • Comes with cURL v7.88.1.
  • Comes with libfido2 v1.13.0.
  • Comes with Git Credential Manager v2.0.935.
  • Bug Fixes:
  • Some commands mishandled absolute paths near the drive root (e.g. scalar unregister C:/foo), which has been fixed.
  • When trying to call Cygwin (or for that matter, MSYS2) programs from Git Bash, users would frequently be greeted with cryptic error messages about a "cygheap" or even just an even more puzzling exit code 127. Many of these calls now succeed, allowing basic interactions. While it is still not possible for, say, Cygwin's vim.exe to interact with the Git Bash's terminal window, it is now possible for Cygwin's zstd.exe in conjuction with Git for Windows' tar.exe to handle .tar.zst archives.

New in Portable Git 2.40.0 RC0 (Feb 27, 2023)

  • Comes with Git v2.40.0-rc0.

New in Portable Git 2.39.2 (Feb 15, 2023)

  • Addresses CVE-2023-22743, a vulnerability rated "high" making the Git for Windows' installer susceptible to DLL side-loading attacks.
  • Addresses CVE-2023-23618, a vulnerability rated "high" where gitk would inadvertently execute programs placed in the worktree.
  • Addresses CVE-2023-22490, a moderate vulnerability allowing for data exfiltration in local clones.
  • Addresses CVE-2023-23946, a moderate vulnerability that would allow crafted patches to trick git apply into writing into files outside the current directory.

New in Portable Git 2.39.1 (Jan 17, 2023)

  • New Features:
  • Comes with Git v2.39.1.
  • Bug Fixes:
  • Addresses CVE-2022-23521, a critical vulnerability in the .gitattributes parsing that potentially allows malicious code to be executed while cloning.
  • Addresses CVE-2022-41953, a vulnerability that makes Git GUI's Clone function susceptible to Remote Code Execution attacks.
  • Addresses CVE-2022-41903, a vulnerability that may allow heap overflows and code to be executed inadvertently during a git archive invocation.
  • A regression introduced in Git for Windows v2.39.0(2) that prevented cloning from Bitbucket was fixed.

New in Portable Git 2.39.0(2) (Dec 21, 2022)

  • New Features:
  • Comes with PCRE2 v10.42.
  • Comes with Git Credential Manager v2.0.886.
  • Comes with MinTTY v3.6.3.
  • Comes with cURL v7.87.0.
  • Bug Fixes:
  • The installer is expected to stop GPG agents automatically, but there was a bug that prevented that from working, which has been fixed.
  • A regression that caused no_proxy to be ignored was fixed by upgrading libcurl.
  • The Git Credential Manager version shipped with Git for Windows v2.39.0 could not always find its UI helper which was fixed by upgrading to a fixed version.
  • A bug in MinTTY caused it to throw a Critical Error when the printer spool service was not started, which was fixed by upgrading MinTTY.

New in Portable Git 2.39.0 RC 0 (Nov 23, 2022)

  • Changes since Git for Windows v2.38.1 (October 18th 2022):
  • Comes with OpenSSL v1.1.1q.
  • New Features:
  • Comes with Git v2.39.0-rc0.
  • Comes with OpenSSL v1.1.1s.
  • Comes with cURL v7.86.0.
  • The Portable Git edition (which comes as a self-extracting 7-Zip archive) now uses the latest 7-Zip version to self-extract.
  • Comes with OpenSSH v9.1p1.
  • It is now possible to generate and use SSH keys protected by security keys (AKA FIDO devices) via Windows Hello, e.g. via ssh-keygen.exe -t ecdsa-sk.
  • Comes with Bash v5.2 patchlevel 009 .
  • Portable Git no longer configures color.diff, color.status and color.branch individually, but configures color.ui instead, which makes it easier to override the default.
  • Comes with GNU TLS v3.7.8.
  • Comes with Git Credential Manager Core v2.0.877.
  • Bug Fixes:
  • The Git executables (e.g. git.exe itself) used to have incomplete version information recorded in their resources, which has been fixed.
  • A regression introduced in Git for Windows v2.38.0 that prevented git.exe from running in Windows Nano Server containers was fixed.

New in Portable Git 2.38.1 (Oct 19, 2022)

  • This is a security bug fix release coordinated with Git v2.38.1, addressing CVE-2022-39260 and CVE-2022-39253.

New in Portable Git 2.38.0 RC 2 (Sep 28, 2022)

  • New Features:
  • Comes with Git v2.38.0-rc2.
  • Comes with cURL v7.85.0.
  • Comes with MSYS2 runtime (Git for Windows flavor) based on Cygwin 3.3.6.
  • Comes with BusyBox v1.34.0.19688.985b51cf7.
  • The scalar command is now included. Scalar is a helper to automatically configure your (large) Git repositories to take advantage of the latest and greatest features. Note: If you work with repositories hosted on Azure Repos, use Microsoft's fork of Git for the best user experience.

New in Portable Git 2.38.0 RC 1 (Sep 22, 2022)

  • New Features:
  • Comes with Git v2.38.0-rc1.
  • Comes with cURL v7.85.0.
  • Comes with MSYS2 runtime (Git for Windows flavor) based on Cygwin 3.3.6.
  • Comes with BusyBox v1.34.0.19688.985b51cf7.

New in Portable Git 2.38.0 RC 0 (Sep 16, 2022)

  • New Features:
  • Comes with Git v2.38.0-rc0.
  • Comes with cURL v7.85.0.
  • Comes with MSYS2 runtime (Git for Windows flavor) based on Cygwin 3.3.6.

New in Portable Git 2.37.3 (Aug 31, 2022)

  • New Features:
  • Comes with Git v2.37.3.
  • Comes with tig v2.5.7.
  • Bug Fixes:
  • Git for Windows now correctly handles .doc files that are not Word Documents.

New in Portable Git 2.37.2.2 (Aug 12, 2022)

  • New Features:
  • Comes with Git v2.37.2.
  • Comes with tig v2.5.6.
  • Comes with Bash v5.1 patchlevel 016 .
  • Comes with Perl v5.36.0.
  • Git's executables are now marked Terminal Server-aware, meaning: Git will be slightly faster when being run using Remote Desktop Services.
  • git svn is now based on subversion v1.14.2.
  • Comes with GNU TLS v3.7.7.
  • Bug Fixes:
  • Git for Windows now ships without the zmore and bzmore utilities (which were broken and included only inadvertently).
  • A regression in the vimdiff mode of git mergetool has been fixed.
  • With certain network drives, it was reported that some attributes associated with caching confused Git for Windows. This was fixed.

New in Portable Git 2.37.2 (Aug 11, 2022)

  • (Upcoming) breaking changes:
  • We up dated the included Bash to version 5.1 (previously 4.4). Please check your shell scripts for potential compatibility issues.
  • Also, as previously announced, Git for Windows dropped support for Windows Vista.
  • Around the beginning of 2023, Git for Windows will drop support for Windows 7 and for Windows 8, following Cygwin's and MSYS2's lead (Git for Windows relies on MSYS2 for components such as Bash and Perl).
  • New Features:
  • Comes with Git v2.37.2.
  • Comes with tig v2.5.6.
  • Comes with Bash v5.1 patchlevel 016 .
  • Comes with Perl v5.36.0.
  • Git's executables are now marked Terminal Server-aware, meaning: Git will be slightly faster when being run using Remote Desktop Services.
  • Git svn is now based on subversion v1.14.2.
  • Comes with GNU TLS v3.7.7.
  • Bug Fixes:
  • Git for Windows now ships without the zmore and bzmore utilities (which were broken and included only inadvertently).
  • A regression in the vimdiff mode of git mergetool has been fixed.
  • With certain network drives, it was reported that some attributes associated with caching confused Git for Windows. This was fixed.

New in Portable Git 2.37.1 (Jul 12, 2022)

  • New Features:
  • Comes with Git v2.37.1.
  • Comes with OpenSSL v1.1.1q.
  • Comes with Git Credential Manager Core v2.0.785.
  • Comes with tig v2.5.5.
  • Bug Fixes:
  • Pasting large amounts of text in Git for Windows' Bash when running inside Windows Terminal often resulted in garbled text, which has been fixed.
  • The Perl module perl-Clone which linked to a non-existing DLL was rebuilt to fix the issue.
  • The Git for Windows installer can no longer be tricked into running an untrusted git.exe in elevated mode (CVE-2022-31012).
  • When running Git in a world-writable directory owned by the current user (think C:WindowsTemp, when running under the SYSTEM account), the checks for dubious ownership of the .git directory now detect this situation properly (CVE-2022-29187).

New in Portable Git 2.37.0 RC 0 (Jun 15, 2022)

  • New Features:
  • Comes with Git v2.37.0-rc0.
  • Comes with cURL v7.83.1.
  • Many anti-malware products seem to have problems with our MSYS2 runtime, leading to problems running e.g. git subtree. We added a workaround that hopefully helps in most of these scenarios.
  • Comes with MSYS2 runtime (Git for Windows flavor) based on Cygwin 3.3.5.
  • Comes with PCRE2 v10.40.
  • Comes with Git LFS v3.2.0.
  • Comes with GNU TLS v3.7.6.
  • SSH's CBC ciphers, which were re-enabled in 2017 to better support Azure Repos have again been disabled by default because Azure Repos does not require them any longer.
  • Bug Fixes:
  • The Git for Windows-only --show-ignored-directory option of git status, which was deprecated a long time ago, was finally removed.
  • A crash when running Git for Windows in Wine was fixed.

New in Portable Git 2.36.1 (May 9, 2022)

  • New Features:
  • Comes with Git v2.36.1.
  • On newer Windows versions, Git now assumes a Win32 Console with full color capabilities. This helps e.g. when NeoVIM is configured as Git's editor.
  • Comes with OpenSSH v9.0p1.
  • When git clean fails due to long paths, Git now advises the user to set core.longPaths.
  • Comes with cURL v7.83.0.
  • Git Credential Manager's binaries are no longer installed in the same location as core Git's own dashed programs. This separates more clearly the core Git executables from the Git executables provided by third-parties.
  • Comes with Git Credential Manager Core v2.0.696.
  • Comes with OpenSSL v1.1.1o.
  • Comes with patch level 4 of the MSYS2 runtime (Git for Windows flavor) based on Cygwin 3.3.4.
  • Bug Fixes:
  • A regression introduced in Git for Windows v2.36.0 where GPG in 32-bit versions simply would not work was fixed.
  • The proxy-lookup helper only reported the first letter of the proxy, which was fixed.
  • The installer now verifies that .NET Framework 4.7.2 is available before offering Git Credential Manager (GCM) as an option (because it is required for GCM to work).
  • A bug introduced into v2.36.0 where shell scripts failed to run on some network shares with the error "Too many levels of symbolic links" was fixed.

New in Portable Git 2.36.0 (Apr 20, 2022)

  • Upcoming breaking changes:
  • We plan to update the included bash to version 5.1 (currently 4.4) soon after Git for Windows 2.36.0 is released. Please check your shell scripts for potential compatibility issues.
  • Git for Windows will also stop supporting Windows Vista soon after Git for Windows 2.36.0 is released. Around the beginning of 2023, Git for Windows will drop support for Windows 7 and for Windows 8, following Cygwin's and MSYS2's lead (Git for Windows relies on MSYS2 for components such as Bash and Perl).
  • New Features:
  • Comes with Git v2.36.0.
  • Comes with MSYS2 runtime (Git for Windows flavor) based on Cygwin 3.3.4.
  • Comes with OpenSSH v8.9p1.
  • Comes with cURL v7.82.0.
  • Comes with OpenSSL v1.1.1n.
  • Comes with Git Credential Manager Core v2.0.696.
  • Comes with GNU TLS v3.7.4.
  • Comes with Git LFS v3.1.4.

New in Portable Git 2.35.2 (Apr 12, 2022)

  • New Features:
  • Comes with Git v2.35.2.
  • Bug Fixes:
  • The uninstaller was hardened to avoid a vulnerability when running under the SYSTEM account, addressing CVE-2022-24767.

New in Portable Git 2.36.0 RC 1 (Apr 9, 2022)

  • New Features:
  • Comes with Git v2.36.0-rc1.
  • Comes with MSYS2 runtime (Git for Windows flavor) based on Cygwin 3.3.4.
  • Comes with Git LFS v3.1.2.
  • Comes with OpenSSH v8.9p1.
  • Comes with cURL v7.82.0.
  • Comes with OpenSSL v1.1.1n.
  • Comes with Git Credential Manager Core v2.0.696.
  • Comes with GNU TLS v3.7.4.

New in Portable Git 2.36.0 RC 0 (Apr 5, 2022)

  • Comes with Git v2.36.0-rc0.
  • Comes with MSYS2 runtime (Git for Windows flavor) based on Cygwin 3.3.4.
  • Comes with Git LFS v3.1.2.
  • Comes with OpenSSH v8.9p1.
  • Comes with cURL v7.82.0.
  • Comes with OpenSSL v1.1.1n.
  • Comes with GNU TLS v3.7.4.

New in Portable Git 2.35.1.2 (Mar 25, 2022)

  • Bug Fixes:
  • A bug in FSCache that triggered by a patch that made it into Git for Windows v2.35.0 was fixed.

New in Portable Git 2.35.1 (Jan 29, 2022)

  • New Features
  • Comes with Git v2.35.1:
  • Git 2.35 shipped with a regression that broke use of "rebase" and "stash" in a secondary worktree. This maintenance release ought to fix it.

New in Portable Git 2.35.0 RC 0 (Jan 11, 2022)

  • Comes with Git v2.35.0-rc0.
  • Comes with a version of the MSYS2 runtime (Git for Windows flavor) based on Cygwin 3.3.3.
  • Comes with OpenSSL v1.1.1m.
  • Comes with Git Credential Manager Core v2.0.632.34631.
  • Comes with cURL v7.81.0.

New in Portable Git 2.34.1 (Nov 25, 2021)

  • New Features:
  • Comes with Git v2.34.1.
  • Comes with Git Credential Manager Core v2.0.605.12951.
  • Comes with cURL v7.80.0.

New in Portable Git 2.34.0 RC 0 (Oct 30, 2021)

  • New Features:
  • Comes with Git v2.34.0-rc0.
  • Config settings referring to paths relative to where Git is installed now have to be marked via %(prefix)/ instead of the now-deprecated leading slash.
  • Comes with Git LFS v3.0.2.
  • Contains new, experimental support for core.fsyncObjectFiles=batch.
  • Bug Fixes:
  • Configuring a system-wide VS Code as Git's editor was broken, which has been fixed.
  • It is now possible to clone files larger than 4GB as long as they are transferred via Git LFS.

New in Portable Git 2.33.1 (Oct 14, 2021)

  • New Features:
  • Comes with Git v2.33.1.
  • Comes with OpenSSL v1.1.1l.
  • The included git svn now uses subversion v1.14.1 internally.
  • Git Credential Manager for Windows (which was superseded by Git Credential Manager Core, and was deprecated for a long time now, and no longer succeeds to authenticate with GitHub) is no longer included in Git for Windows.
  • Comes with cURL v7.79.1.
  • Comes with OpenSSH v8.8p1.
  • Comes with Git LFS v3.0.1.
  • The built-in filesystem watcher ("FSMonitor") has been updated to the latest version.
  • Comes with Git Credential Manager Core v2.0.567.18224.
  • Bug Fixes:
  • Wordpad can be configured as Git's preferred editor again.
  • A bug where Git's garbage collection during a git pull failed to delete obsolete files was fixed.
  • The git svn command, which was broken in Git for Windows v2.33.0(2), has been fixed.
  • The password prompt when cloning via SSH works again.
  • The MSYS2 runtime no longer complains about FAST_CWD on Windows/ARM64.
  • When VS Code is configured as editor, it no longer needs the window to be closed, just the tab.
  • The 32-bit versions of Git for Windows included outdated versions of ca-certificates and less, which has been rectified.

New in Portable Git 2.33.0.2 (Aug 24, 2021)

  • New Features:
  • Comes with cURL v7.78.0.
  • Comes with OpenSSH v8.7p1.
  • Bug Fixes:
  • A bug affecting older Windows versions that caused the installer to show the error message "Could not call proc" was fixed.

New in Portable Git 2.33.0 RC 0 (Aug 3, 2021)

  • New Features:
  • Comes with Git v2.33.0-rc0.
  • Comes with Perl v5.34.0 (and some updated Perl modules).
  • Bug Fixes:
  • The installer no longer shows an error dialog when upgrading while the Windows Terminal Profile option is checked.

New in Portable Git 2.32.0.2 (Jul 6, 2021)

  • New Features:
  • The Windows Terminal profile is now identified by a GUID, for more robust customization.
  • Comes with GNU Privacy Guard v2.2.28.
  • Comes with Git Credential Manager Core v2.0.475.64295.
  • Access to remote HTTPS repositories that requires client certificates can be enabled. This is now necessary because cURL no longer sends client certificates by default.
  • Bug Fixes:
  • The built-in file system watcher could hang in some scenarios. This was fixed.
  • Remote HTTPS repositories could not be accessed from within portable Git installed into a network share. This has been fixed.
  • When scrolling in the pager (e.g. in the output of git log), lines were duplicated by mistake. This was fixed.
  • The git subtree command was completely broken in the previous release, and was fixed.
  • A bug was fixed where remote operations appeared to hang (but were waiting for user feedback on a hidden Console).
  • A bug was fixed where the experimental built-in file system watcher had a problem with worktrees whose paths had non-ASCII characters.

New in Portable Git 2.32.0 RC 0 (May 17, 2021)

  • New Features:
  • Comes with Git v2.32.0-rc0.
  • Comes with cURL v7.76.1.
  • Comes with Git Credential Manager Core v2.0.435.9025.
  • Bug Fixes:
  • When testing a custom editor in the installer, we now spawn it in non-elevated mode, fixing e.g. Atom when an instance is already running.

New in Portable Git 2.31.1 (Mar 28, 2021)

  • Bug Fixes:
  • It is now possible to execute the Windows Store version of python3.exe from Git Bash.

New in Portable Git 2.30.2 (Mar 10, 2021)

  • New Features:
  • Comes with Git v2.30.2.
  • Comes with PCRE2 v10.36.
  • Comes with tig v2.5.2.
  • Comes with OpenSSL v1.1.1j.

New in Portable Git 2.31.0 RC 0 (Feb 26, 2021)

  • New Features:
  • Comes with Git v2.31.0-rc0.
  • Comes with PCRE2 v10.36.
  • Comes with tig v2.5.2.
  • Comes with OpenSSL v1.1.1j.

New in Portable Git 2.30.1 (Feb 10, 2021)

  • New Features:
  • Comes with Git v2.30.1.
  • Comes with Perl v5.32.1.
  • Comes with cURL v7.75.0.

New in Portable Git 2.30.0.2 (Jan 17, 2021)

  • New Features:
  • Comes with Git Credential Manager Core v2.0.318.44100.
  • Comes with Git LFS v2.13.2.

New in Portable Git 2.30.0 RC0 (Dec 14, 2020)

  • New Features:
  • Comes with Git v2.30.0-rc0.
  • Comes with OpenSSL v1.1.1i.
  • Comes with cURL v7.74.0.
  • Comes with Git LFS v2.13.1.
  • Bug Fixes:
  • The auto-updater now shows the progress while installing.
  • The credential-helper selector (which is the default credential helper in the Portable version of Git for Windows) now handles paths with spaces correctly.

New in Portable Git 2.29.2.3 (Dec 8, 2020)

  • New Features:
  • Comes with GNU Privacy Guard v2.2.25.
  • Comes with Git Credential Manager Core v2.0.289.48418.
  • Bug Fixes:
  • Beyond Compare 4 can be configured as difftool bc4 again.

New in Portable Git 2.29.2.2 (Nov 5, 2020)

  • This version includes a new Git LFS version to fix CVE-2020-27955.
  • New Features:
  • Comes with Git Credential Manager Core v2.0.280.19487.
  • Comes with Git LFS v2.12.1.

New in Portable Git 2.29.2 (Oct 30, 2020)

  • Bug Fixes:
  • The recent regression where OpenSSH's copy-ssh-id failed to work correctly, was fixed.
  • A regression preventing /usr/bin/update-ca-trust from working was fixed.

New in Portable Git 2.28.0 (Oct 6, 2020)

  • New Features:
  • Comes with Git v2.29.0-rc0.
  • Comes with cURL v7.72.0.
  • Comes with MSYS2 runtime (Git for Windows flavor) based on Cygwin 3.1.7.
  • Comes with Git LFS v2.12.0.
  • Comes with GNU Privacy Guard v2.2.23.
  • Comes with OpenSSL v1.1.1h.
  • Comes with libcbor v0.8.0.
  • Comes with libfido2 v1.5.0.
  • Comes with OpenSSH v8.4p1.
  • Comes with Git Credential Manager Core v2.0.252.766.
  • Existing Git Credential Manager for Windows users are now automatically upgraded to Git Credential Manager Core.
  • Git for Windows' installer learned to let users override the default branch used by git init.
  • The installer size was reduced by dropping a couple unneeded .dll files.
  • Bug Fixes:New Features
  • Comes with Git v2.28.0.
  • Comes with subversion v1.14.0.
  • Comes with the designated successor of Git Credential Manager for Windows (GCM for Windows), the cross-platform Git Credential Manager Core. For now, this is opt-in, with the idea of eventually retiring GCM for Windows.
  • Comes with cURL v7.71.1.
  • Comes with Perl v5.32.0.
  • Comes with MSYS2 runtime (Git for Windows flavor) based on Cygwin 3.1.6 (including the improvements of Cygwin 3.1.5).
  • Comes with GNU Privacy Guard v2.2.21.
  • Bug Fixes
  • A typo was fixed in the installer.
  • The new git pull behavior option now records the fast-forward choice correctly.
  • In v2.27.0, git svn wNew Features:
  • Comes with Git v2.28.0.
  • Comes with subversion v1.14.0.
  • Comes with the designated successor of Git Credential Manager for Windows (GCM for Windows), the cross-platform Git Credential Manager Core. For now, this is opt-in, with the idea of eventually retiring GCM for Windows.
  • Comes with cURL v7.71.1.
  • Comes with Perl v5.32.0.
  • Comes with MSYS2 runtime (Git for Windows flavor) based on Cygwin 3.1.6 (including the improvements of Cygwin 3.1.5).
  • Comes with GNU Privacy Guard v2.2.21.
  • Bug Fixes:
  • A typo was fixed in the installer.
  • The new git pull behavior option now records the fast-forward choice correctly.
  • In v2.27.0, git svn was broken completely, which has been fixed.
  • Some Git operations could end up with bogus modified symbolic links (where git status would report changes but git diff would not), which is now fixed.
  • When reinstalling (or upgrading) Git for Windows, the "Pseudo Console Support" choice is now remembered correctly.
  • Under certain circumstances, the Git Bash window (MinTTY) would crash frequently, which has been addressed.
  • When pseudo console support is enabled, the VIM editor sometimes had troubles accepting certain keystrokes, which was fixed.
  • Due to a bug, it was not possible to disable Pseudo Console support by reinstalling with the checkbox turned off, which has been fixed.
  • A bug with enabled Pseudo Console support, where git add -i would not quit the file selection mode upon an empty input, has been fixed.
  • The cleanup mode called "scissors" in git commit now handles CR/LF line endings correctly.
  • When cloning into an existing directory, under certain circumstances, the core.worktree option was set unnecessarily. This has been fixed.
  • as broken completely, which has been fixed.
  • Some Git operations could end up with bogus modified symbolic links (where git status would report changes but git diff would not), which is now fixed.
  • When reinstalling (or upgrading) Git for Windows, the "Pseudo Console Support" choice is now remembered correctly.
  • Under certain circumstances, the Git Bash window (MinTTY) would crash frequently, which has been addressed.
  • When pseudo console support is enabled, the VIM editor sometimes had troubles accepting certain keystrokes, which was fixed.
  • Due to a bug, it was not possible to disable Pseudo Console support by reinstalling with the checkbox turned off, which has been fixed.
  • A bug with enabled Pseudo Console support, where git add -i would not quit the file selection mode upon an empty input, has been fixed.
  • The cleanup mode called "scissors" in git commit now handles CR/LF line endings correctly.
  • When cloning into an existing directory, under certain circumstances, the core.worktree option was set unnecessarily. This has been fixed.
  • The credential helper selector (used as default credential helper in the Portable Git) now persists the users choice correctly again.
  • The full command-lines of MSYS2 processes (such as cp.exe) spawned from Git's Bash can now be seen in sysmon, wmic etc by default.
  • A bug preventing Unicode characters from being used in the window title of Git Bash was fixed.
  • OpenSSH was patched to no longer warn about an "invalid format" when private and public keys are stored separately.
  • Non-ASCII output of paged Git commands is now rendered correctly in Windows Terminal.
  • It is now possible to use wordpad.exe as Git's editor of choice.
  • When using Git via the "Run As..." function, it now uses the correct home directory.

New in Portable Git 2.28.0 RC 0 (Jul 10, 2020)

  • New Features:
  • Comes with Git v2.28.0-rc0.
  • Comes with subversion v1.14.0.
  • Comes with MSYS2 runtime (Git for Windows flavor) based on Cygwin 3.1.5.
  • Comes with the designated successor of Git Credential Manager for Windows (GCM for Windows), the cross-platform Git Credential Manager Core. For now, this is opt-in, with the idea of eventually retiring GCM for Windows.
  • Comes with cURL v7.71.1.
  • Comes with Perl v5.32.0.
  • Comes with MSYS2 runtime (Git for Windows flavor) based on Cygwin 3.1.6.
  • Comes with GNU Privacy Guard v2.2.21.
  • Bug Fixes:
  • A typo was fixed in the installer.
  • The new git pull behavior option now records the fast-forward choice correctly.
  • In v2.27.0, git svn was broken completely, which has been fixed.
  • Some Git operations could end up with bogus modified symbolic links (where git status would report changes but git diff would not), which is now fixed.
  • When reinstalling (or upgrading) Git for Windows, the "Pseudo Console Support" choice is now remembered correctly.
  • Under certain circumstances, the Git Bash window (MinTTY) would crash frequently, which has been addressed.
  • When pseudo console support is enabled, the VIM editor sometimes had troubles accepting certain keystrokes, which was fixed.
  • Due to a bug, it was not possible to disable Pseudo Console support by reinstalling with the checkbox turned off, which has been fixed.
  • A bug with enabled Pseudo Console support, where git add -i would not quit the file selection mode upon an empty input, has been fixed.
  • The cleanup mode called "scissors" in git commit now handles CR/LF line endings correctly.
  • When cloning into an existing directory, under certain circumstances, the core.worktree option was set unnecessarily. This has been fixed.

New in Portable Git 2.27.0 RC 1 (May 20, 2020)

  • New Features:
  • Comes with Git v2.27.0-rc1.
  • Comes with OpenSSL v1.1.1g.
  • Comes with cURL v7.70.0.
  • Comes with subversion v1.13.0.
  • Comes with MSYS2 runtime (Git for Windows flavor) based on Cygwin 3.1.4.
  • The release notes have been made a bit more readable and are now linked from the Start Menu group.
  • The Frequently Asked Questions (FAQ) are now linked in a Start Menu item.
  • Comes with Git LFS v2.11.0.
  • Bug Fixes:
  • Some Perl packages (e.g. Net::SSLeay) that had been broken recently have been fixed.

New in Portable Git 2.27.0 RC 0 (May 15, 2020)

  • New Features:
  • Comes with Git v2.27.0-rc0.
  • Comes with OpenSSL v1.1.1g.
  • Comes with perl-YAML-Syck v1.32.
  • Comes with perl-HTML-Parser v3.72.
  • Comes with cURL v7.70.0.
  • Comes with subversion v1.13.0.
  • Comes with MSYS2 runtime (Git for Windows flavor) based on Cygwin 3.1.4.
  • The release notes have been made a bit more readable and are now linked from the Start Menu group.
  • The Frequently Asked Questions (FAQ) are now linked in a Start Menu item.
  • Comes with perl-Locale-Gettext v1.07.
  • Comes with Git LFS v2.11.0.
  • Bug Fixes:
  • Some Perl packages (e.g. Net::SSLeay) that had been broken recently have been fixed.

New in Portable Git 2.26.2 (Apr 20, 2020)

  • New Features:
  • Comes with Git v2.26.2.
  • Comes with tig v2.5.1.
  • Worktree updates (e.g. git checkout, git reset --hard) got a performance boost in sparse checkouts.
  • Bug Fixes:
  • A recent regression in gitk that prevented it from running in bare repositories has been fixed.

New in Portable Git 2.26.1 (Apr 14, 2020)

  • New Features:
  • Comes with Git v2.26.1.
  • Comes with OpenSSL v1.1.1f.
  • Bug Fixes:
  • Git now accepts more date formats such as %g and %V.

New in Portable Git 2.26.0 RC 0 (Mar 6, 2020)

  • New Features:
  • Comes with Git v2.26.0-rc0.
  • Comes with cURL v7.69.0.
  • Git for Windows' OpenSSH now can use USB security tokens (e.g. Yubikeys).
  • The native Windows HTTPS backend (Secure Channel) has learned to work gracefully with Fiddler and corporate proxies.
  • Bug Fixes:
  • Git for Windows can now clone into directories the current user can write to, even if they lack permission to even read the parent directory.

New in Portable Git 2.25.1 (Feb 19, 2020)

  • New Features:
  • Comes with Git v2.25.1.
  • The Portable version of Git for Windows now defaults to turning on the FSCache just like the installer does.
  • Comes with Git LFS v2.10.0.
  • Portable Git can now be run from a RAM disk, too.
  • The deprecation of Git CMD has been reverted: the security issue (git show would execute a git executable or script in the current directory instead of the intended git.exe) was fixed already in v2.20.0.
  • Comes with OpenSSH v8.2p1.
  • Bug Fixes:
  • Some corner-case bugs in the built-in git add -i were fixed.
  • The file name COM0 is no longer mistaken for a reserved file name.
  • The curl.exe included in Git for Windows can access SFTP/SSH hosts again.

New in Portable Git 2.24.1 (Dec 10, 2019)

  • New Features:
  • Comes with Git v2.24.1.
  • Comes with tig v2.5.0.
  • Comes with patch level 4 of the MSYS2 runtime (Git for Windows flavor) based on Cygwin 3.0.7.
  • The command-line options of git-bash.exe are now documented (call git help git-bash).
  • Comes with Git LFS v2.9.1.
  • Comes with cURL v7.67.0.
  • Comes with GNU Privacy Guard v2.2.18.
  • Bug Fixes:
  • MinGit no longer overrides an installed Git for Windows' system gitconfig.
  • The "Check daily for updates" feature uses the Action Center again.
  • When associating .sh files with Git Bash to allow running them by double-clicking them in the Windows Explorer, shell scripts with non-ASCII characters in their file name are now supported.

New in Portable Git 2.24.0.2 (Nov 6, 2019)

  • New Features:
  • Comes with cURL v7.67.0.
  • Bug Fixes:
  • Using http.extraHeader no longer results in spurious crashes.
  • The /proc/{stdin,stdout,stderr} pseudo-symlinks are now installed properly even with non-US locales.
  • A bug was fixed that prevented gitk from refreshing after new changes were committed.

New in Portable Git 2.24.0 (Nov 6, 2019)

  • New Features:
  • Comes with Git v2.24.0.
  • Comes with cURL v7.66.0.
  • Comes with Git Credential Manager v1.20.0.
  • Comes with OpenSSH v8.1p1.
  • Comes with OpenSSL v1.1.1d.
  • Comes with Git LFS v2.9.0.
  • Bug Fixes:
  • The shell construct <(<command>), which was broken in v2.23.0 (/dev/fd/<n>: no such file or directory), was fixed.
  • The default config no longer skips git-lfs downloads.
  • Starting with cURL v7.66.0, $HOME/.netrc can be used instead of $HOME/_netrc (but it will still fall back to looking for the latter).
  • The installer's "ProductVersion" is now consistent with older Git for Windows versions'.
  • Makes git config --system work like you think it should.
  • The (still experimental) built-in git add -p no longer gets confused about incomplete lines (i.e. a file's l last line that does not end in a Line Feed).
  • A buffer overrun in the code to determine which files need to be marked as hidden was plugged.
  • The support for sendpack.sideband that was removed by mistake was re-introduced, to support git push via the git:// protocol again.
  • git stash no longer records skip-worktree files as deleted after resolving merge conflicts in them.
  • The Git for Windows installer no longer complains about a downgrade when upgrading from an -rc version, i.e. from a pre-release leading up to the next major version.

New in Portable Git 2.22.0 (Jul 30, 2019)

  • New Features:
  • Comes with Git v2.22.0.
  • The awk included in Git for Windows now includes extensions such as inplace.
  • The file/product version stored in the installer's .exe file now matches the version of the included git.exe file's.
  • Comes with OpenSSH v8.0p1.
  • Comes with Git LFS v2.7.2.
  • Comes with MSYS2 runtime (Git for Windows flavor) based on Cygwin v3.x (see release notes for Cygwin 3.0.0, 3.0.1, 3.0.2, 3.0.3, 3.0.4, 3.0.5, 3.0.6, and 3.0.7).
  • There are now experimental built-in versions of git add -i and git add -p, i.e. those modes are now a lot faster (in particular at startup). You can opt into using them on the last installer page.
  • PortableGit now comes with a meta credential helper, i.e. a GUI that lets the user choose which of the available credential helpers to use. This should help to avoid storing credentials on other people's machines when running portable Git from a thumb drive.
  • Comes with gawk v5.0.0.
  • Comes with Git Credential Manager v1.19.0.
  • Comes with git-flow v1.12.3.
  • Comes with OpenSSL v1.1.1c.
  • Comes with GNU Privacy Guard v2.2.16, specifically patched to handle Windows paths.
  • Comes with cURL v7.65.1.
  • Comes with Heimdal v7.5.0.
  • -packages/pull/33).
  • Bug Fixes:
  • Git for Windows' updater is now accessible, i.e. it can be read by a screen reader.
  • git update-git-for-windows (i.e. the auto updater of Git for Windows) now reports correctly when it failed to access the GitHub API.
  • Git for Windows' updater no longer runs into GitHub API rate limits (this used to be quite common in enterprise scenarios, where many users would share one IP as far as GitHub is concerned).
  • gitk no longer fails with "filename too long" when there are 1,000+ branches/tags.
  • A bug which on occasion caused lengthy rebase runs to crash without error message was fixed.
  • Two workarounds from the Git for Windows 1.x era (concerning reading credentials via GUI and fetching via git://) were considered obsolete.
  • git difftool --no-index can now be run outside of Git worktrees.
  • git rebase -i used to get confused when an exec command created new commits and then appended pick lines for them. This has been fixed.
  • During a run of git rebase --rebase-merges, the output of git status now shows label lines correctly, i.e. with the labels' names instead of the commit hash they point to.
  • We now avoid problems updating the commit graph when gc.writeCommitGraph=true.

New in Portable Git 2.21.1 (Feb 27, 2019)

  • New Features:
  • Comes with Git v2.21.0.
  • The custom editor setting in the installer has been improved substantially.
  • Comes with Git Credential Manager v1.18.4.0.
  • Comes with cURL v7.64.0.
  • Comes with git-flow v1.12.0.
  • git archive no longer requires gzip to generate .tgz archives (this means in particular that it works in MinGit).
  • System-wide Sublime Text installations are now detected and offered on the editor wizard page.
  • Comes with Git LFS v2.7.1.
  • Bug Fixes:
  • The Git CMD deprecation was further clarified to mention that the Start Menu item is deprecated, not using Git from CMD.
  • Certain drivers/anti-malware caused git.exe to hang, which has been fixed.
  • git stash now works after staging files with git add -N.
  • A problem with difftool and more than a handful modified files has been fixed.
  • The regression where git-cmd <command> would not execute the command was fixed.
  • Portable Git can be launched via network paths again.
  • FSCache works again on network drives, in particular when Windows 8.1 or older are involved.
  • Partially hidden text in the Path options page in the installer is no longer hidden.
  • Fixes an obscure git svn hang.
  • The installer now configures editors so that the built-in rebase can use them.

New in Portable Git 2.20.1 (Dec 15, 2018)

  • Comes with Git v2.20.1.
  • Comes with cURL v7.63.0.

New in Portable Git 2.19.2 (Nov 22, 2018)

  • New Features:
  • Comes with Git v2.19.2.
  • Comes with OpenSSH v7.9p1.
  • The description of the editor option to choose Vim has been clarified to state that this unsets core.editor.
  • Comes with cURL v7.62.0.
  • The type of symlinks to create (directory or file) can now be specified via the .gitattributes.
  • The FSCache feature now uses a faster method to enumerate files, making e.g. git status faster in large repositories.
  • Comes with Git Credential Manager v1.18.3.
  • Comes with Git LFS v2.6.0.
  • Comes with MSYS2 runtime (Git for Windows flavor) based on Cygwin 2.11.2.
  • The FSCache feature was optimized to become faster.
  • Bug Fixes:
  • The 64-bit Portable Git no longer sets pack.packSizeLimit.

New in Portable Git 2.19.1 (Oct 6, 2018)

  • New Features:
  • Comes with Git v2.19.1.
  • Comes with Git LFS v2.5.2.
  • Comes with Git Credential Manager v1.17.2.
  • When FSCache is enabled, commands such as add, commit, and reset are now much faster.
  • Sublime Text, Atom, and even the new user-specific VS Code installations can now by used as Git's default editor.
  • Comes with Git Credential Manager v1.18.0.
  • Bug Fixes:
  • Several corner case bugs were fixed in the built-in rebase/stash commands.
  • An occasional crash in git gc (which had been introduced into v2.19.0) has been fixed.

New in Portable Git 2.19.0 (Sep 13, 2018)

  • New Features:
  • Comes with Git v2.19.0.
  • There are now fast, built-in versions of git stash and git rebase, available as experimental options.
  • The included OpenSSH client now enables modern ciphers.
  • The gitweb component was removed because it is highly unlikely to be used on Windows.
  • The git archimport tool (which was probably used by exactly 0 users) is no longer included in Git for Windows.
  • Comes with tig v2.4.0.
  • Comes with Git LFS v2.5.1.
  • Comes with Git Credential Manager v1.17.1.
  • Comes with OpenSSL v1.0.2p.
  • Comes with cURL v7.61.1.
  • Comes with mingw-w64-nodejs v8.12.0.
  • Bug Fixes:
  • The http.schannel.checkRevoke setting (which never worked) was renamed to http.schannelCheckRevoke. In the same run, http.schannel.useSSLCAInfo (which also did not work, for the same reason) was renamed to http.schannelUseSSLCAInfo.
  • Avoids a stack overflow with recent Windows Insider versions.
  • Git GUI now handles hooks correctly in worktrees other than the main one.
  • When using core.autocrlf, the bogus "LF will be replaced by CRLF" warning is now suppressed.
  • The funny fatal error -cmalloc would have returned NULL problems should be gone.

New in Portable Git 2.18.0 (Jul 25, 2018)

  • New Features:
  • Comes with Git v2.18.0.
  • Comes with Git Credential Manager v1.16.2.
  • Bug Fixes:
  • The diff filter for .pdf files was fixed.
  • The start-ssh-agent.cmd script no longer overrides the HOME variable.
  • Fixes an issue where passing an argument with a trailing slash from Git Bash to git.exe was dropping that trailing slash.
  • The http.schannel.checkRevoke setting now really works.

New in Portable Git 2.17.1.2 (May 30, 2018)

  • New Features:
  • Comes with Git Credential Manager v1.16.1.
  • Comes with Git LFS v2.4.2.
  • Bug Fixes:
  • This release really contains Git v2.17.1.

New in Portable Git 2.17.1 (May 30, 2018)

  • New Features:
  • Comes with Git v2.17.1.
  • Comes with Perl v5.26.2.
  • The installer now offers VS Code Insiders as option for Git's default editor if it is installed.
  • The vim configuration was modernized.
  • Comes with cURL v7.60.0.
  • Certain errors, e.g. when pushing failed due to a non-fast-forwarding change, are now colorful.
  • Comes with cURL v7.60.0.
  • Comes with Git LFS v2.4.1.
  • Bug Fixes:
  • Fixed an issue with recursive clone (CVE 2018-11235).
  • Aliases that expand to shell commands can now take arguments containing curly brackets.
  • Ctrl+C is now handled in Git Bash in a sophisticated way: it emulates the way Ctrl+C is handled in Git CMD, but in a fine-grained way.
  • Based on the the new Ctrl+C handling in Git Bash, pressing Ctrl+C while git log is running will only stop Git from traversing the commit history, but keep the pager running.
  • Git was fixed to work correctly in Docker volumes inside Windows containers.
  • Tab completion of git status -- <partial-path> is now a lot faster.
  • Git for Windows now creates directory symlinks correctly when asked to.
  • The option to disable revocation checks with Secure Channel which was introduced in v2.16.1(2) now really works.
  • Git no longer enters an infinite loop when misspelling git status as, say, git Status.

New in Portable Git 2.17.0 (Apr 3, 2018)

  • New Features:
  • Comes with Git v2.17.0.
  • Comes with OpenSSL v1.0.2o.
  • Comes with Git Credential Manager v1.15.2.
  • Comes with OpenSSH v7.7p1.

New in Portable Git 2.16.3 (Mar 24, 2018)

  • New Features:
  • Comes with Git v2.16.3.
  • When choosing to "Use Git from the Windows Command Prompt" (i.e. add only the minimal set of Git executables to the PATH), and when choosing the Git LFS component, Git LFS is now included in that minimal set. This makes it possible to reuse Git for Windows' Git LFS, say, from Visual Studio.
  • Comes with gawk v4.2.1.
  • In conjunction with the FSCache feature, git checkout is now a lot faster when checking out a lot of files.
  • Comes with Git LFS v2.4.0.
  • Comes with Git Credential Manager v1.15.0.
  • Comes with cURL v7.59.0.
  • The Git for Windows SDK can now be "installed" via git clone --depth=1 https://github.com/git-for-windows/git-sdk-64.
  • The tar utility (included as a courtesy, not because Git needs it) can now unpack .tar.xz archives.
  • Bug Fixes:
  • When a TERM is configured that Git for Windows does not know about, Bash no longer crashes.
  • The regression where gawk stopped treating Carriage Returns as part of the line endings was fixed.
  • When Git asks for credentials via the terminal in a Powershell window, it no longer fails to do so.
  • The installer is now more robust when encountering files that are in use (and can therefore not be overwritten right away).
  • The included find and rm utilities no longer have problems with deeply nested directories on FAT drives.
  • The cygpath utility included in Git for Windows now strips trailing slashes when normalizing paths (just like the Cygwin version of the utility; this is different from how MSYS2 chooses to do things).
  • The certificates of HTTPS proxies configured via http.proxy are now validated against the ca-bundle.crt correctly.

New in Portable Git 2.16.2 (Feb 20, 2018)

  • New Features:
  • Comes with Git v2.16.2.
  • For every new Git for Windows version, .zip archives containing .pdb files for some of Git for Windows' components are now published alongside the new version.
  • Comes with MSYS2 runtime (Git for Windows flavor) based on Cygwin 2.10.0; This required rebuilding OpenSSH, Perl (and some Perl modules) and Subversion.
  • Comes with Bash v4.4 patchlevel 019 .
  • Bug Fixes:
  • The Perl upgrade in Git for Windows v2.16.1(4) broke interactive authentication of git svn, which was fixed.
  • When configuring HTTPS transport to use Secure Channel, we now refrain from configuring http.sslCAInfoThis also helps Git LFS (which uses Git for Windows' private http.sslCAInfo setting) to use the same credentials as git fetch and git push.

New in Portable Git 2.16.1.4 (Feb 8, 2018)

  • When called from TortoiseGit, git.exe can now spawn processes again.

New in Portable Git 2.16.1.3 (Feb 6, 2018)

  • New Features:
  • Git for Windows' SDK packages are now hosted on Azure Blobs, fixing part of issue #1479.
  • Comes with perl-Net-SSLeay v1.84.
  • Bug Fixes:
  • When http.sslBackend is not configured (e.g. in portable Git or MinGit), fetch/push operations no longer crash.
  • On Windows 7 and older, Git for Windows v2.16.1(2) was no longer able to spawn any processes (e.g. during fetch/clone). This regression has been fixed.
  • The Perl upgrade in v2.16.1(2) broke git send-email; This has been fixed by updating the Net-SSLeay Perl module.

New in Portable Git 2.16.1.2 (Feb 3, 2018)

  • New Features:
  • Comes with Heimdal v7.5.0.
  • Comes with cURL v7.58.0.
  • Comes with Perl v5.26.1.
  • When using GNU nano as Git's default editor, it is now colorful (shows syntax-highlighting).
  • Comes with tig v2.3.3.
  • When using Secure Channel as HTTPS transport behind a proxy, it may be necessary to disable revocation checks, which is now possible.
  • Comes with BusyBox v1.28.0pre.16550.0b3cdd76c.
  • Bug Fixes:
  • When Git spawns processes, now only the necessary file handles are inherited from the parent process, possibly preventing file locking issues.
  • The git update command has been renamed to git update-git-for-windows to avoid confusion where users may think that git update updates their local repository or worktree.

New in Portable Git 2.16.1 (Jan 23, 2018)

  • A set of regressions introduced by patches intended to speed up reset and checkout was fixed

New in Portable Git 2.15.1.2 (Nov 30, 2017)

  • Bug Fixes:
  • The bug introduced into Git for Windows v2.15.1 where vim would show an ugly warning upon startup was fixed.

New in Portable Git 2.15.1 (Nov 29, 2017)

  • New Features:
  • Comes with Git v2.15.1.
  • Operations in massively-sparse worktrees are now much faster if core.fscache = true.
  • It is now possible to configure nano or Notepad++ as Git's default editor instead of vim.
  • Comes with OpenSSL v1.0.2m.
  • Git for Windows' updater now uses non-intrusive toast notifications on Windows 8, 8.1 and 10.
  • Running git fetch in a repository with lots of refs is now considerably faster.
  • Comes with cURL v7.57.0.
  • Bug Fixes:
  • The experimental --show-ignored-directory option of git status which was removed in Git for Windows v2.15.0 without warning has been reintroduced as a deprecated option.
  • The git update command (to auto-update Git for Windows) will now work also work behind proxies.

New in Portable Git 2.15.0 (Oct 31, 2017)

  • New Features:
  • Comes with Git v2.15.0.
  • Bug Fixes:
  • The auto-updater tried to run at a precise time, and did not run when the computer was switched off at that time. Now it runs as soon after the scheduled time as possible.
  • The auto-updater no longer suggests to downgrade from Release Candidates.
  • When the auto-updater asked the user whether they want to upgrade to a certain version, and the user declined, the auto-updater will not bother the user about said version again.
  • The installer, when run with /SKIPIFINUSE=1, now detects whether any executable in Git for Windows' installation is run
  • Git for Windows no longer includes (non-working) xmlcatalog.exe and xmllint.exe.

New in Portable Git 2.14.3 (Oct 27, 2017)

  • New Features:
  • Comes with Git v2.14.3.
  • Git for Windows now ships with a diff helper for OpenOffice documents.
  • Comes with Git LFS v2.3.4.
  • Comes with cURL v7.56.1.
  • Bug Fixes:
  • Git for Windows now handles worktrees at the top-level of a UNC share correctly.

New in Portable Git 2.14.1 (Sep 1, 2017)

  • New Features:
  • Comes with Git v2.14.1.
  • Comes with cURL v7.55.0.
  • The Git Bash Here context menu item is now also available in the special Libraries folders.

New in Portable Git 2.10.2 (Nov 6, 2016)

  • New Features:
  • Comes with Git v2.10.2.
  • Comes with Git Credential Manager v1.8.1.
  • Comes with cURL v7.51.0.
  • Git for Windows can now be built easily with Visual C++ 2015.
  • The installer now logs post-install errors more verbosely.
  • A new option asks the installer to skip installation if Git's files are in use.
  • A new option asks the installer to quietly skip downgrading Git for Windows, without indicating failure.
  • There is now an explicit option for symbolic link support, including a link to a more verbose explanation of the issue.
  • Bug Fixes:
  • when upgrading Git for Windows, SSH agent processes are now auto-terminated.
  • When trying to install/upgrade on a Windows version that is no longer supported, we now refuse to do so.

New in Portable Git 2.6.4 (Dec 29, 2015)

  • New Features:
  • Comes with Git v2.6.4
  • Bug Fixes:
  • Git for Windows v2.6.3's installer failed to elevate privileges automatically (reported three times, making it a charm), and as a consequence Git for Windows 2.6.3 was frequently installed per-user by mistake
  • The bug where SHELL_PATH had spaces and that was reported multiple times has been fixed
  • An additional work-around from upstream Git for SHELL_PATH containing spaces (fixing problems with interactive rebase's exec command has been applied

New in Portable Git 2.6.3 (Dec 29, 2015)

  • New Features:
  • Comes with Git v2.6.3.
  • Enables the stack smasher to protect against buffer overflows.
  • Bug Fixes:
  • Git Bash works now even when choosing Windows' default console and installing into a short path (e.g. C:\Git).
  • Notepad can now really be used to edit commit messages.
  • Git's garbage collector now handles stale refs/remotes/origin/HEAD gracefully.
  • The regression in Git for Windows 2.6.2 that it required administrator privileges to be installed is now fixed.
  • When notepad is configured as default editor, we no longer do anything specially unless editing files inside .git/.

New in Portable Git 2.6.2 (Dec 29, 2015)

  • New Features:
  • Comes with Git v2.6.2
  • Users who are part of a Windows domain now have sensible default values for user.name and user.email.
  • Bug Fixes:
  • We no longer run out of page file space when git fetching large repositories.
  • The description of Windows' default console is accurate now (the console became more powerful in Windows 10).
  • Git GUI now respects the terminal emulation chosen at install time when running the Git Bash.

New in Portable Git 2.6.1 (Dec 29, 2015)

  • New Features:
  • Comes with Git 2.6.1
  • The installer now writes the file /etc/install-options.txt to record which options were chosen at install time
  • Replaces git flow with the AVH edition which is maintained actively, in surprising and disappointing contrast to Vincent Driessen's very own project
  • Bug Fixes:
  • The PATH variable is now really left alone when choosing the "Use Git from Git Bash only" option in the installer. Note that upgrading Git for Windows will call the previous version's uninstaller, which might still have that bug
  • Git GUI's Registry>Create Desktop Icon now generates correct shortcuts
  • The antiword utility to render Word documents for use in git diff now works correctly
  • In 64-bit installations, we no longer set a pack size limit by default
  • When installing Git for Windows as regular user, the installer no longer comptries to create privileged registry keys

New in Portable Git 2.6.0 (Dec 29, 2015)

  • New Features:
  • Comes with Git 2.6.0
  • The WhoUses.exe tool to determine which process holds a lock on a given file (which was shipped with Git for Windows 1.x) gets installed alongside Git for Windows again.
  • The values CurrentVersion, InstallPath and LibexecPath are added to the HKEY_LOCAL_MACHINE\Software\GitForWindows registry key to help third-party add-ons to find us.
  • When fetching or pushing with Git without a console, we now fall back to Git GUI's askpass helper to ask for pass phrases.
  • When run through \cmd\git.exe, Git will find tools in $HOME/bin now.
  • Bug Fixes:
  • The portable version avoids DLL search path problems even when installed into a FAT filesystem.
  • Configuring notepad as editor without configuring a width for commit messages no longer triggers an error message.
  • When using Windows' default console for Git Bash, the .sh file associations work again.
  • Portable Git's README is now clearer about the need to run post-install.bat when unpacking manually.
  • We use the winpty trick now to run ipython interactively, too.
  • When the environment variable HOME is not set, we now fall back correctly to use HOMEDRIVE and HOMEPATH.
  • The home directory is now set correctly when running as the SYSTEM user.
  • The environment variable GIT_WORK_TREE may now differ in lower/upper case with the Git's idea of the current working directory.
  • Running git clone --dissociate ... no longer locks the pack files during the repacking phase.
  • Upstream cURL fixes for NTLM proxy issues ("Unknown SSL error") were backported.

New in Portable Git 2.5.3 (Dec 29, 2015)

  • New Features:
  • Comes with Git 2.5.3
  • Includes git flow
  • By configuring git config core.editor notepad, users can now use notepad.exe as their default editor. Configuring git config format.commitMessageColumns 72 will be picked up by the notepad wrapper and line-wrap the commit message after the user edited it
  • The Subversion bindings for use with git svn were upgraded to version 1.9.1
  • Some interactive console programs, e.g. psql.exe, now work in mintty thanks to pre-configured aliases
  • The mechanism to diff .pdf, .doc and .docx files known from Git for Windows 1.x has been ported to Git for Windows 2.x
  • Git can now access IPv6-only hosts via HTTP/HTTPS
  • Bug fixes:
  • The .vimrc in the home directory is now allowed to have DOS line endings
  • The README.portable file of the portable Git mentions the need to run post-install.bat when the archive was extracted manually
  • Home directories for user names with non-ASCII characters are handled correctly now
  • The documentation no longer shows plain-text linkgit:... "links" but proper hyperlinks instead
  • The mtab link is written to /etc/mtab again, as it should
  • When run inside the PowerShell, Git no longer gets confused when the current directory's path and what is recorded in the file system differs in case (e.g. "GIT/" vs "Git/")

New in Portable Git 1.9.4 Preview 20140611 (Jul 4, 2014)

  • New Features:
  • Comes with Git 1.9.4 plus Windows-specific patches.
  • Bugfixes:
  • Upgrade openssl to 0.9.8za (msysgit/msysgit#212)
  • Config option to disable side-band-64k for transport (msysgit/git#101)
  • Make git-http-backend, git-http-push, git-http-fetch available again (msysgit/git#174)

New in Portable Git 1.8.5.2 Preview 20131230 (Jan 17, 2014)

  • Foreign interfaces, subsystems and ports:
  • "git-svn" has been taught to use the serf library, which is the only option SVN 1.8.0 offers us when talking the HTTP protocol.
  • "git-svn" talking over an https:// connection using the serf library dumped core due to a bug in the serf library that SVN uses. Work around it on our side, even though the SVN side is being fixed.
  • On MacOS X, we detected if the filesystem needs the "pre-composed unicode strings" workaround, but did not automatically enable it. Now we do.
  • remote-hg remote helper misbehaved when interacting with a local Hg repository relative to the home directory, e.g. "clone hg::~/there".
  • imap-send ported to OS X uses Apple's security framework instead of OpenSSL's.
  • "git fast-import" treats an empty path given to "ls" as the root of the tree.
  • UI, Workflows & Features:
  • xdg-open can be used as a browser backend for "git web-browse"(hence to show "git help -w" output), when available.
  • "git grep" and "git show" pay attention to the "--textconv" option when these commands are told to operate on blob objects (e.g. "git grep -e pattern --textconv HEAD:Makefile").
  • "git replace" helper no longer allows an object to be replaced with another object of a different type to avoid confusion (you can still manually craft such a replacement using "git update-ref", as an escape hatch).
  • "git status" no longer prints the dirty status information of submodules for which submodule.$name.ignore is set to "all".
  • "git rebase -i" honours core.abbrev when preparing the insn sheet for editing.
  • "git status" during a cherry-pick shows which original commit is being picked.
  • Instead of typing four capital letters "HEAD", you can say "@" now, e.g. "git log @".
  • "git check-ignore" follows the same rule as "git add" and "git status" in that the ignore/exclude mechanism does not take effect on paths that are already tracked. With the "--no-index" option, it can be used to diagnose which paths that should have been ignored
  • have been mistakenly added to the index.
  • Some irrelevant "advice" messages that are shared with "git status" output have been removed from the commit log template.
  • "update-refs" learned a "--stdin" option to read multiple update requests and perform them in an all-or-none fashion.
  • Just like "make -C ", "git -C ..." tells Git to go there before doing anything else.
  • Just like "git checkout -" knows to check out, and "git merge -" knows to merge, the branch you were previously on, "git cherry-pick" now understands "git cherry-pick -" to pick from the previous branch.
  • "git status" now omits the prefix to make its output a comment in a commit log editor, which is not necessary for human consumption. Scripts that parse the output of "git status" are advised to use "git status --porcelain" instead, as its format is stable and easier to parse.
  • The ref syntax "foo^{tag}" (with the literal string "{tag}") peels a tag ref to itself, i.e. it's a no-op., and fails if "foo" is not a tag. "git rev-parse --verify v1.0^{tag}" is
  • a more convenient way than "test $(git cat-file -t v1.0) = tag" to check if v1.0 is a tag.
  • "git branch -v -v" (and "git status") did not distinguish among a branch that is not based on any other branch, a branch that is in sync with its upstream branch, and a branch that is configured with an upstream branch that no longer exists.
  • Earlier we started rejecting any attempt to add the 0{40} object name to the index and to tree objects, but it sometimes is necessary to allow this to be able to use tools like filter-branch to correct such broken tree objects. "filter-branch" can again be used to do this.
  • "git config" did not provide a way to set or access numbers larger than a native "int" on the platform; it now provides 64-bit signed integers on all platforms.
  • "git pull --rebase" always chose to do the bog-standard flattening rebase. You can tell it to run "rebase --preserve-merges" with "git pull --rebase=preserve" or by setting "pull.rebase" configuration to "preserve".
  • "git push --no-thin" actually disables the "thin pack transfer" optimization.
  • Magic pathspecs like ":(icase)makefile" (matches both Makefile and makefile) and ":(glob)foo/**/bar" (matches "bar" in "foo" and any subdirectory of "foo") can be used in more places.
  • The "http.*" variables can now be specified for individual URLs.
  • "git mv A B" when moving a submodule has been taught to relocate the submodule's working tree and to adjust the paths in the .gitmodules file.
  • "git blame" can now take more than one -L option to discover the origin of multiple blocks of lines.
  • The http transport clients can optionally ask to save cookies with the http.savecookies configuration variable.
  • "git push" learned a more fine grained control over a blunt "--force" when requesting a non-fast-forward update with the "--force-with-lease=:" option.
  • "git diff --diff-filter=" can now take lowercase letters (e.g. "--diff-filter=d") to mean "show everything but these classes". "git diff-files -q" is now a deprecated synonym for "git diff-files --diff-filter=d".
  • "git fetch" (hence "git pull" as well) learned to check "fetch.prune" and "remote.*.prune" configuration variables and to behave as if the "--prune" command line option was given.
  • "git check-ignore -z" applied the NUL termination to both its input (with --stdin) and its output, but "git check-attr -z" ignored the option on the output side. Make both honor -z on the input and output side the same way.
  • "git whatchanged" may still be used by old timers, but mention of it in documents meant for new users will only waste readers' time wondering what the difference is between it and "git log". Make it less prominent in the general part of the documentation and explain that it is merely a "git log" with different default behaviour in its own document.
  • Performance, Internal Implementation, etc:
  • "git for-each-ref" when asking for merely the object name does not have to parse the object pointed at by the refs; the codepath has been optimized.
  • The HTTP transport will try to use TCP keepalive when able.
  • "git repack" is now written in C.
  • Build procedure for MSVC has been updated.
  • If a build-time fallback is set to "cat" instead of "less", we should apply the same "no subprocess or pipe" optimization as we apply to user-supplied GIT_PAGER=cat.
  • Many commands use a --dashed-option as an operation mode selector (e.g. "git tag --delete") that excludes other operation modes (e.g. "git tag --delete --verify" is nonsense) and that cannot be negated (e.g. "git tag --no-delete" is nonsense). The parse-options API learned a new OPT_CMDMODE macro to make it easier to implement such a set of options.
  • OPT_BOOLEAN() in the parse-options API was misdesigned to be "counting up" but many subcommands expect it to behave as "on/off". Update them to use OPT_BOOL() which is a proper boolean.
  • "git gc" exits early without doing any work when it detects that another instance of itself is already running.
  • Under memory pressure and/or file descriptor pressure, we used to close pack windows that are not used and also closed filehandles to open but unused packfiles. These are now controlled separately to better cope with the load.
  • Also contains various documentation updates and code clean-ups.

New in Portable Git 1.8.4 Preview 20130916 (Oct 29, 2013)

  • New Features:
  • Comes with Git 1.8.4 plus Windows specific patches.
  • Enabled unicode support in bash (#42 and #79)
  • Included iconv.exe to assist in writing encoding filters
  • Updated openssl to 0.9.8y
  • Bugfixes:
  • Avoid emitting non-printing chars to set console title.
  • Various encoding fixes for the git test suite
  • Ensure wincred handles empty username/password.

New in Portable Git 1.7.10 Preview 20120409 (Apr 10, 2012)

  • UI, Workflows & Features"
  • various "gitk" updates
  • show the path to the top level directory in the window title
  • update preference edit dialog
  • display file list correctly when directories are given on command line
  • make "git-describe" output in the log message into a clickable link
  • avoid matching the UNIX timestamp part when searching all fields
  • give preference to symbolic font names like sans & monospace
  • allow comparing two commits using a mark
  • "gitk" honors log.showroot configuration
  • Teams for localizing the messages from the Porcelain layer of
  • commands are starting to form, thanks to Jiang Xin who volunteered
  • to be the localization coordinator. Translated messages for
  • simplified Chinese, Swedish and Portuguese are available
  • The configuration mechanism learned an "include" facility; an
  • assignment to the include.path pseudo-variable causes the named
  • file to be included in-place when Git looks up configuration
  • variables
  • A content filter (clean/smudge) used to be just a way to make the
  • recorded contents "more useful", and allowed to fail; a filter can
  • now optionally be marked as "required"
  • Options whose names begin with "--no-" (e.g. the "--no-verify"
  • option of the "git commit" command) can be negated by omitting
  • "no-" from its name, e.g. "git commit --verify"
  • "git am" learned to pass "-b" option to underlying "git mailinfo", so
  • that a bracketed string other than "PATCH" at the beginning can be kept
  • "git clone" learned "--single-branch" option to limit cloning to a
  • single branch (surprise!); tags that do not point into the history
  • of the branch are not fetched
  • "git clone" learned to detach the HEAD in the resulting repository
  • when the user specifies a tag with "--branch" (e.g., "--branch=v1.0")
  • Clone also learned to print the usual "detached HEAD" advice in such
  • a case, similar to "git checkout v1.0"
  • When showing a patch while ignoring whitespace changes, the context
  • lines are taken from the postimage, in order to make it easier to
  • view the output
  • "git diff --stat" learned to adjust the width of the output on
  • wider terminals, and give more columns to pathnames as needed
  • "diff-highlight" filter (in contrib/) was updated to produce more
  • aesthetically pleasing output
  • "fsck" learned "--no-dangling" option to omit dangling object
  • information
  • "git log -G" and "git log -S" learned to pay attention to the "-i"
  • option. With "-i", "log -G" ignores the case when finding patch
  • hunks that introduce or remove a string that matches the given
  • pattern. Similarly with "-i", "log -S" ignores the case when
  • finding the commit the given block of text appears or disappears
  • from the file
  • "git merge" in an interactive session learned to spawn the editor
  • by default to let the user edit the auto-generated merge message
  • to encourage people to explain their merges better. Legacy scripts
  • can export GIT_MERGE_AUTOEDIT=no to retain the historical behavior
  • Both "git merge" and "git pull" can be given --no-edit from the
  • command line to accept the auto-generated merge message
  • The advice message given when the user didn't give enough clue on
  • what to merge to "git pull" and "git merge" has been updated to
  • be more concise and easier to understand
  • "git push" learned the "--prune" option, similar to "git fetch"
  • The whole directory that houses a top-level superproject managed by
  • "git submodule" can be moved to another place
  • "git symbolic-ref" learned the "--short" option to abbreviate the
  • refname it shows unambiguously
  • "git tag --list" can be given "--points-at " to limit its
  • output to those that point at the given object
  • "gitweb" allows intermediate entries in the directory hierarchy
  • that leads to a project to be clicked, which in turn shows the
  • list of projects inside that directory
  • "gitweb" learned to read various pieces of information for the
  • repositories lazily, instead of reading everything that could be
  • needed (including the ones that are not necessary for a specific
  • task)
  • Project search in "gitweb" shows the substring that matched in the
  • project name and description highlighted
  • HTTP transport learned to authenticate with a proxy if needed
  • A new script "diffall" is added to contrib/; it drives an
  • external tool to perform a directory diff of two Git revisions
  • in one go, unlike "difftool" that compares one file at a time
  • Foreign Interface:
  • Improved handling of views, labels and branches in "git-p4" (in contrib)
  • "git-p4" (in contrib) suffered from unnecessary merge conflicts when
  • p4 expanded the embedded $RCS$-like keywords; it can be now told to
  • unexpand them
  • Some "git-svn" updates
  • "vcs-svn"/"svn-fe" learned to read dumps with svn-deltas and
  • support incremental imports
  • "git difftool/mergetool" learned to drive DeltaWalker
  • Performance:
  • Unnecessary calls to parse_object() "git upload-pack" makes in
  • response to "git fetch", have been eliminated, to help performance
  • in repositories with excessive number of refs
  • Internal Implementation (please report possible regressions)
  • Recursive call chains in "git index-pack" to deal with long delta
  • chains have been flattened, to reduce the stack footprint
  • Use of add_extra_ref() API is now gone, to make it possible to
  • cleanly restructure the overall refs API
  • The command line parser of "git pack-objects" now uses parse-options
  • API
  • The test suite supports the new "test_pause" helper function
  • Parallel to the test suite, there is a beginning of performance
  • benchmarking framework
  • t/Makefile is adjusted to prevent newer versions of GNU make from
  • running tests in seemingly random order
  • The code to check if a path points at a file beyond a symbolic link
  • has been restructured to be thread-safe
  • When pruning directories that has become empty during "git prune"
  • and "git prune-packed", call closedir() that iterates over a
  • directory before rmdir() it
  • Also contains minor documentation updates and code clean-ups
  • Fixes:
  • Unless otherwise noted, all the fixes since v1.7.9 in the maintenance
  • releases are contained in this release (see release notes to them for
  • details)
  • Build with NO_PERL_MAKEMAKER was broken and Git::I18N did not work
  • with versions of Perl older than 5.8.3
  • merge 5eb660e ab/perl-i18n later to maint)
  • "git tag -s" honored "gpg.program" configuration variable since
  • 1.7.9, but "git tag -v" and "git verify-tag" didn't
  • merge a2c2506 az/verify-tag-use-gpg-config later to maint)
  • "configure" script learned to take "--with-sane-tool-path" from the
  • command line to record SANE_TOOL_PATH (used to avoid broken platform
  • tools in /usr/bin) in config.mak.autogen. This may be useful for
  • people on Solaris who have saner tools outside /usr/xpg[46]/bin
  • zsh port of bash completion script needed another workaround

New in Portable Git 1.7.9 (Apr 10, 2012)

  • gitk updates accumulated since early 2011
  • git-gui updated to 0.16.0
  • git-p4 (in contrib/) updates
  • Git uses gettext to translate its most common interface messages
  • into the user's language if translations are available and the
  • locale is appropriately set. Distributors can drop new PO files
  • in po/ to add new translations
  • The code to handle username/password for HTTP transactions used in
  • "git push" & "git fetch" learned to talk "credential API" to
  • external programs to cache or store them, to allow integration with
  • platform native keychain mechanisms
  • The input prompts in the terminal use our own getpass() replacement
  • when possible. HTTP transactions used to ask for the username without
  • echoing back what was typed, but with this change you will see it as
  • you type
  • The internals of "revert/cherry-pick" have been tweaked to prepare
  • building more generic "sequencer" on top of the implementation that
  • drives them
  • "git rev-parse FETCH_HEAD" after "git fetch" without specifying
  • what to fetch from the command line will now show the commit that
  • would be merged if the command were "git pull"
  • "git add" learned to stream large files directly into a packfile
  • instead of writing them into individual loose object files
  • "git checkout -B " is a more intuitive
  • way to spell "git reset --keep "
  • "git checkout" and "git merge" learned "--no-overwrite-ignore" option
  • to tell Git that untracked and ignored files are not expendable
  • "git commit --amend" learned "--no-edit" option to say that the
  • user is amending the tree being recorded, without updating the
  • commit log message
  • "git commit" and "git reset" re-learned the optimization to prime
  • the cache-tree information in the index, which makes it faster to
  • write a tree object out after the index entries are updated
  • "git commit" detects and rejects an attempt to stuff NUL byte in
  • the commit log message
  • "git commit" learned "-S" to GPG-sign the commit; this can be shown
  • with the "--show-signature" option to "git log"
  • fsck and prune are relatively lengthy operations that still go
  • silent while making the end-user wait. They learned to give progress
  • output like other slow operations
  • The set of built-in function-header patterns for various languages
  • knows MATLAB
  • "git log --format=''" learned new %g[nNeE] specifiers to
  • show information from the reflog entries when walking the reflog
  • i.e. with "-g")
  • "git pull" can be used to fetch and merge an annotated/signed tag
  • instead of the tip of a topic branch. The GPG signature from the
  • signed tag is recorded in the resulting merge commit for later
  • auditing
  • "git log" learned "--show-signature" option to show the signed tag
  • that was merged that is embedded in the merge commit. It also can
  • show the signature made on the commit with "git commit -S"
  • "git branch --edit-description" can be used to add descriptive text
  • to explain what a topic branch is about
  • "git fmt-merge-msg" learned to take the branch description into
  • account when preparing a merge summary that "git merge" records
  • when merging a local branch
  • "git request-pull" has been updated to convey more information
  • useful for integrators to decide if a topic is worth merging and
  • what is pulled is indeed what the requestor asked to pull
  • including
  • the tip of the branch being requested to be merged
  • the branch description describing what the topic is about
  • the contents of the annotated tag, when requesting to pull a tag
  • "git pull" learned to notice 'pull.rebase' configuration variable
  • which serves as a global fallback for setting 'branch..rebase'
  • configuration variable per branch
  • "git tag" learned "--cleanup" option to control how the whitespaces
  • and empty lines in tag message are cleaned up
  • "gitweb" learned to show side-by-side diff
  • Also contains minor documentation updates and code clean-ups

New in Portable Git 1.7.8 Preview 20111206 (Jan 30, 2012)

  • Updates:
  • Some git-svn, git-gui, git-p4 (in contrib) and msysgit updates.
  • Updates to bash completion scripts.
  • The build procedure has been taught to take advantage of computed dependency automatically when the complier supports it.
  • The date parser now accepts timezone designators that lack minutes part and also has a colon between "hh:mm".
  • The contents of the /etc/mailname file, if exists, is used as the default value of the hostname part of the committer/author e-mail.
  • "git am" learned how to read from patches generated by Hg.
  • "git archive" talking with a remote repository can report errors from the remote side in a more informative way.
  • "git branch" learned an explicit --list option to ask for branches listed, optionally with a glob matching pattern to limit its output.
  • "git check-attr" learned "--cached" option to look at .gitattributes files from the index, not from the working tree.
  • Variants of "git cherry-pick" and "git revert" that take multiple commits learned to "--continue" and "--abort".
  • "git daemon" gives more human readble error messages to clients using ERR packets when appropriate.
  • Errors at the network layer is logged by "git daemon".
  • "git diff" learned "--minimal" option to spend extra cycles to come up with a minimal patch output.
  • "git diff" learned "--function-context" option to show the whole function as context that was affected by a change.
  • "git difftool" can be told to skip launching the tool for a path by answering 'n' to its prompt.
  • "git fetch" learned to honor transfer.fsckobjects configuration to validate the objects that were received from the other end, just like "git receive-pack" (the receiving end of "git push") does.
  • "git fetch" makes sure that the set of objects it received from the other end actually completes the history before updating the refs.
  • "git receive-pack" (the receiving end of "git push") learned to do the same.
  • "git fetch" learned that fetching/cloning from a regular file on the filesystem is not necessarily a request to unpack a bundle file; the file could be ".git" with "gitdir: " in it.
  • "git for-each-ref" learned "%(contents:subject)", "%(contents:body)" and "%(contents:signature)". The last one is useful for signed tags.
  • "git grep" used to incorrectly pay attention to .gitignore files scattered in the directory it was working in even when "--no-index" option was used. It no longer does this. The "--exclude-standard" option needs to be given to explicitly activate the ignore mechanism.
  • "git grep" learned "--untracked" option, where given patterns are searched in untracked (but not ignored) files as well as tracked files in the working tree, so that matches in new but not yet added files do not get missed.
  • The recursive merge backend no longer looks for meaningless existing merges in submodules unless in the outermost merge.
  • "git log" and friends learned "--children" option.
  • "git ls-remote" learned to respond to "-h"(elp) requests.
  • "mediawiki" remote helper can interact with (surprise!) MediaWiki with "git fetch" & "git push".
  • "git merge" learned the "--edit" option to allow users to edit the merge commit log message.
  • "git rebase -i" can be told to use special purpose editor suitable only for its insn sheet via sequence.editor configuration variable.
  • "git send-email" learned to respond to "-h"(elp) requests.
  • "git send-email" allows the value given to sendemail.aliasfile to begin with "~/" to refer to the $HOME directory.
  • "git send-email" forces use of Authen::SASL::Perl to work around issues between Authen::SASL::Cyrus and AUTH PLAIN/LOGIN.
  • "git stash" learned "--include-untracked" option to stash away untracked/ignored cruft from the working tree.
  • "git submodule clone" does not leak an error message to the UI level unnecessarily anymore.
  • "git submodule update" learned to honor "none" as the value for submodule..update to specify that the named submodule should not be checked out by default.
  • When populating a new submodule directory with "git submodule init", the $GIT_DIR metainformation directory for submodules is created inside $GIT_DIR/modules// directory of the superproject and referenced via the gitfile mechanism. This is to make it possible to switch between commits in the superproject that has and does not have the submodule in the tree without re-cloning.
  • "gitweb" leaked unescaped control characters from syntax hiliter outputs.
  • "gitweb" can be told to give custom string at the end of the HTML HEAD element.
  • "gitweb" now has its own manual pages.
  • Fixes:
  • HTTP transport did not use pushurl correctly, and also did not tell what host it is trying to authenticate with when asking for credentials. (merge deba493 jk/http-auth later to maint).
  • "git blame" was aborted if started from an uncommitted content and the path had the textconv filter in effect. (merge 8518088 ss/blame-textconv-fake-working-tree later to maint).
  • Adding many refs to the local repository in one go (e.g. "git fetch" that fetches many tags) and looking up a ref by name in a repository with too many refs were unnecessarily slow. (merge 17d68a54d jp/get-ref-dir-unsorted later to maint).
  • Report from "git commit" on untracked files was confused under core.ignorecase option. (merge 395c7356 jk/name-hash-dirent later to maint).
  • "git merge" did not understand ":/" as a way to name a commit.
  • "git push" on the receiving end used to call post-receive and post-update hooks for attempted removal of non-existing refs. (merge 160b81ed ph/push-to-delete-nothing later to maint).
  • Help text for "git remote set-url" and "git remote set-branches" were misspelled. (merge c49904e fc/remote-seturl-usage-fix later to maint).
  • (merge 656cdf0 jc/remote-setbranches-usage-fix later to maint).

New in Portable Git 1.7.8 Preview 20111206 (Jan 30, 2012)

  • Updates:
  • Some git-svn, git-gui, git-p4 (in contrib) and msysgit updates.
  • Updates to bash completion scripts.
  • The build procedure has been taught to take advantage of computed dependency automatically when the complier supports it.
  • The date parser now accepts timezone designators that lack minutes part and also has a colon between "hh:mm".
  • The contents of the /etc/mailname file, if exists, is used as the default value of the hostname part of the committer/author e-mail.
  • "git am" learned how to read from patches generated by Hg.
  • "git archive" talking with a remote repository can report errors from the remote side in a more informative way.
  • "git branch" learned an explicit --list option to ask for branches listed, optionally with a glob matching pattern to limit its output.
  • "git check-attr" learned "--cached" option to look at .gitattributes files from the index, not from the working tree.
  • Variants of "git cherry-pick" and "git revert" that take multiple commits learned to "--continue" and "--abort".
  • "git daemon" gives more human readble error messages to clients using ERR packets when appropriate.
  • Errors at the network layer is logged by "git daemon".
  • "git diff" learned "--minimal" option to spend extra cycles to come up with a minimal patch output.
  • "git diff" learned "--function-context" option to show the whole function as context that was affected by a change.
  • "git difftool" can be told to skip launching the tool for a path by answering 'n' to its prompt.
  • "git fetch" learned to honor transfer.fsckobjects configuration to validate the objects that were received from the other end, just like "git receive-pack" (the receiving end of "git push") does.
  • "git fetch" makes sure that the set of objects it received from the other end actually completes the history before updating the refs.
  • "git receive-pack" (the receiving end of "git push") learned to do the same.
  • "git fetch" learned that fetching/cloning from a regular file on the filesystem is not necessarily a request to unpack a bundle file; the file could be ".git" with "gitdir: " in it.
  • "git for-each-ref" learned "%(contents:subject)", "%(contents:body)" and "%(contents:signature)". The last one is useful for signed tags.
  • "git grep" used to incorrectly pay attention to .gitignore files scattered in the directory it was working in even when "--no-index" option was used. It no longer does this. The "--exclude-standard" option needs to be given to explicitly activate the ignore mechanism.
  • "git grep" learned "--untracked" option, where given patterns are searched in untracked (but not ignored) files as well as tracked files in the working tree, so that matches in new but not yet added files do not get missed.
  • The recursive merge backend no longer looks for meaningless existing merges in submodules unless in the outermost merge.
  • "git log" and friends learned "--children" option.
  • "git ls-remote" learned to respond to "-h"(elp) requests.
  • "mediawiki" remote helper can interact with (surprise!) MediaWiki with "git fetch" & "git push".
  • "git merge" learned the "--edit" option to allow users to edit the merge commit log message.
  • "git rebase -i" can be told to use special purpose editor suitable only for its insn sheet via sequence.editor configuration variable.
  • "git send-email" learned to respond to "-h"(elp) requests.
  • "git send-email" allows the value given to sendemail.aliasfile to begin with "~/" to refer to the $HOME directory.
  • "git send-email" forces use of Authen::SASL::Perl to work around issues between Authen::SASL::Cyrus and AUTH PLAIN/LOGIN.
  • "git stash" learned "--include-untracked" option to stash away untracked/ignored cruft from the working tree.
  • "git submodule clone" does not leak an error message to the UI level unnecessarily anymore.
  • "git submodule update" learned to honor "none" as the value for submodule..update to specify that the named submodule should not be checked out by default.
  • When populating a new submodule directory with "git submodule init", the $GIT_DIR metainformation directory for submodules is created inside $GIT_DIR/modules// directory of the superproject and referenced via the gitfile mechanism. This is to make it possible to switch between commits in the superproject that has and does not have the submodule in the tree without re-cloning.
  • "gitweb" leaked unescaped control characters from syntax hiliter outputs.
  • "gitweb" can be told to give custom string at the end of the HTML HEAD element.
  • "gitweb" now has its own manual pages.
  • Fixes:
  • HTTP transport did not use pushurl correctly, and also did not tell what host it is trying to authenticate with when asking for credentials. (merge deba493 jk/http-auth later to maint).
  • "git blame" was aborted if started from an uncommitted content and the path had the textconv filter in effect. (merge 8518088 ss/blame-textconv-fake-working-tree later to maint).
  • Adding many refs to the local repository in one go (e.g. "git fetch" that fetches many tags) and looking up a ref by name in a repository with too many refs were unnecessarily slow. (merge 17d68a54d jp/get-ref-dir-unsorted later to maint).
  • Report from "git commit" on untracked files was confused under core.ignorecase option. (merge 395c7356 jk/name-hash-dirent later to maint).
  • "git merge" did not understand ":/" as a way to name a commit.
  • "git push" on the receiving end used to call post-receive and post-update hooks for attempted removal of non-existing refs. (merge 160b81ed ph/push-to-delete-nothing later to maint).
  • Help text for "git remote set-url" and "git remote set-branches" were misspelled. (merge c49904e fc/remote-seturl-usage-fix later to maint).
  • (merge 656cdf0 jc/remote-setbranches-usage-fix later to maint).

New in Portable Git 1.7.7 Preview 20111014 (Jan 30, 2012)

  • Updates
  • The scripting part of the codebase is getting prepared for i18n/l10n.
  • Interix, Cygwin and Minix ports got updated.
  • Various updates to git-p4 (in contrib/), fast-import, and git-svn.
  • Gitweb learned to read from /etc/gitweb-common.conf when it exists, before reading from gitweb_config.perl or from /etc/gitweb.conf (this last one is read only when per-repository gitweb_config.perl does not exist).
  • Various codepaths that invoked zlib deflate/inflate assumed that these functions can compress or uncompress more than 4GB data in one call on platforms with 64-bit long, which has been corrected.
  • Git now recognizes loose objects written by other implementations that use a non-standard window size for zlib deflation (e.g. Agit running on Android with 4kb window). We used to reject anything that was not deflated with 32kb window.
  • Interaction between the use of pager and coloring of the output has been improved, especially when a command that is not built-in was involved.
  • "git am" learned to pass the "--exclude=" option through to underlying "git apply".
  • You can now feed many empty lines before feeding an mbox file to "git am".
  • "git archive" can be told to pass the output to gzip compression and produce "archive.tar.gz".
  • "git bisect" can be used in a bare repository (provided that the test you perform per each iteration does not need a working tree, of course).
  • The length of abbreviated object names in "git branch -v" output now honors the core.abbrev configuration variable.
  • "git check-attr" can take relative paths from the command line.
  • "git check-attr" learned an "--all" option to list the attributes for a given path.
  • "git checkout" (both the code to update the files upon checking out a different branch and the code to checkout a specific set of files) learned to stream the data from object store when possible, without having to read the entire contents of a file into memory first. An earlier round of this code that is not in any released version had a large leak but now it has been plugged.
  • "git clone" can now take a "--config key=value" option to set the repository configuration options that affect the initial checkout.
  • "git commit ..." now lets you feed relative pathspecs that refer to outside your current subdirectory.
  • "git diff --stat" learned a --stat-count option to limit the output of a diffstat report.
  • "git diff" learned a "--histogram" option to use a different diff generation machinery stolen from jgit, which might give better performance.
  • "git diff" had a weird worst case behaviour that can be triggered when comparing files with potentially many places that could match.
  • "git fetch", "git push" and friends no longer show connection errors for addresses that couldn't be connected to when at least one address succeeds (this is arguably a regression but a deliberate one).
  • "git grep" learned "--break" and "--heading" options, to let users mimic the output format of "ack".
  • "git grep" learned a "-W" option that shows wider context using the same logic used by "git diff" to determine the hunk header.
  • Invoking the low-level "git http-fetch" without "-a" option (which git itself never did---normal users should not have to worry about this) is now deprecated.
  • The "--decorate" option to "git log" and its family learned to highlight grafted and replaced commits.
  • "git rebase master topci" no longer spews usage hints after giving the "fatal: no such branch: topci" error message.
  • The recursive merge strategy implementation got a fairly large fix for many corner cases that may rarely happen in real world projects (it has been verified that none of the 16000+ merges in the Linux kernel history back to v2.6.12 is affected with the corner case bugs this update fixes).
  • "git stash" learned an "--include-untracked option".
  • "git submodule update" used to stop at the first error updating a submodule; it now goes on to update other submodules that can be updated, and reports the ones with errors at the end.
  • "git push" can be told with the "--recurse-submodules=check" option to refuse pushing of the supermodule, if any of its submodules' commits hasn't been pushed out to their remotes.
  • "git upload-pack" and "git receive-pack" learned to pretend that only a subset of the refs exist in a repository. This may help a site to put many tiny repositories into one repository (this would not be useful for larger repositories as repacking would be problematic).
  • "git verify-pack" has been rewritten to use the "index-pack" machinery that is more efficient in reading objects in packfiles.
  • test scripts for gitweb tried to run even when CGI-related perl modules are not installed; they now exit early when the latter are unavailable.
  • Fixes:
  • "git branch -m" and "git checkout -b" incorrectly allowed the tip of the branch that is currently checked out updated.

New in Portable Git 1.7.6 Preview 20110708 (Jan 30, 2012)

  • New Features:
  • Comes with Git 1.7.7 plus patches.
  • Updated gzip/gunzip and include unzip and gvim
  • Primary repositories moved to github.com at http://github.com/msysgit/
  • Bugfixes:
  • Please refer to the release notes for official Git 1.7.7
  • Re-enable vim highlighting
  • Fixed issue with libiconv/libiconv-2 location
  • Fixed regressions in Git Bash script
  • Fixed installation of mergetools for difftool and mergetool use and launching of beyond compare on windows.
  • Fixed warning about mising hostname during git fetch

New in Portable Git 1.7.4 Preview 20110211 (Jan 30, 2012)

  • Fixes:
  • A few header dependencies were missing from the Makefile.
  • Some newer parts of the code used C99 __VA_ARGS__ while we still try to cater to older compilers.
  • "git name-rev --all" tried to name all _objects_, naturally failing to describe many blobs and trees, instead of showing only commits as advertised in its documentation.

New in Portable Git 1.7.3.2 Preview 20101025 (Jun 9, 2011)

  • New Features:
  • Comes with Git 1.7.4 plus patches.
  • Includes antiword to enable viewing diffs of .doc files
  • Includes poppler to enable viewing diffs of .pdf files
  • Removes cygwin paths from the bash shell PATH
  • Bugfixes:
  • Please refer to the release notes for official Git 1.7.4

New in Portable Git 1.7.2.3 Preview 20100911 (Jun 9, 2011)

  • New Features:
  • Comes with Git 1.7.3.1 plus patches.
  • Updated to Vim 7.3, file-5.04 and InnoSetup 5.3.11
  • Bugfixes:
  • Issue 528 (remove uninstaller from Start Menu) was fixed
  • Issue 527 (failing to find the certificate authority bundle) was fixed
  • Issue 524 (remove broken and unused sdl-config file) was fixed
  • Issue 523 (crash pushing to WebDAV remote) was fixed

New in Portable Git 1.7.1 Preview 20100612 (Jun 9, 2011)

  • New Features:
  • Comes with Git 1.7.2.3 plus patches.
  • Bugfixes:
  • Issue 519 (build problem with compat/regex/regexec.c) was fixed
  • Issue 430 (size of panes not preserved in git-gui) was fixed
  • Issue 411 (git init failing to work with CIFS paths) was fixed
  • Issue 501 (failing to clone repo from root dir using relative path) was fixed

New in Portable Git 1.7.0.2 Preview 20100309 (May 7, 2010)

  • New Features:
  • Comes with official Git 1.7.0.2.
  • Comes with Git-Cheetah (on 32-bit Windows only, for now).
  • Comes with connect.exe, a SOCKS proxy.
  • Tons of improvements in the installer, thanks to Sebastian Schuberth.
  • On Vista, if possible, symlinks are used for the built-ins.
  • Features Hany's dos2unix tool, thanks to Sebastian Schuberth.
  • Updated Tcl/Tk to version 8.5.8 (thanks Pat Thoyts!).
  • By default, only .git/ is hidden, to work around a bug in Eclipse (thanks to Erik Faye-Lund).
  • Bugfixes:
  • Fixed threaded grep (thanks to Heiko Voigt).
  • git gui was fixed for all kinds of worktree-related failures (thanks Pat Thoyts).
  • git gui now fully supports themed widgets (thanks Pat Thoyts and Heiko Voigt).
  • Git no longer complains about an unset RUNTIME_PREFIX (thanks Johannes Sixt).
  • git gui can Explore Working Copy on Windows again (thanks Markus Heidelberg).
  • git gui can create shortcuts again (fixes issue 425, thanks Heiko Voigt).
  • When "git checkout" cannot overwrite files because they are in use, it will offer to try again, giving the user a chance to release the file (thanks Heiko Voigt).
  • Ctrl+W will close gitk (thanks Jens Lehmann).
  • git gui no longer binds Ctrl+C, which caused problems when trying to use said shortcut for the clipboard operation "Copy" (fixes issue 423, thanks Pat Thoyts).
  • gitk does not give up when the command line length limit is reached (issue 387).
  • The exit code is fixed when Git.cmd is called from cmd.exe (thanks Alexey Borzenkov).
  • When launched via the (non-Cheetah) shell extension, the window icon is now correct (thanks Sebastian Schuberth).
  • Uses a TrueType font for the console, to be able to render UTF-8 correctly.
  • Clarified the installer's line ending options (issue 370).
  • Substantially speeded up startup time from cmd unless NO_FSTAB_THREAD is set (thanks Johannes Sixt).
  • Update msys-1.0.dll yet again, to handle quoted parameters better (thanks Heiko Voigt).
  • Updated cURL to a version that supports SSPI.
  • Updated tar to handle the pax headers generated by git archive.
  • Updated sed to a version that can handle the filter-branch examples.
  • .git* files can be associated with the default text editor (issue 397).