Existing issues matching what you're seeing
Git for Windows version
git version 2.54.0.windows.1
cpu: x86_64
built from commit: 2b8a3ab140826ac423c2845ef81d4c6ac4f7bf3c
sizeof-long: 4
sizeof-size_t: 8
shell-path: D:/git-sdk-64-build-installers/usr/bin/sh
rust: disabled
feature: fsmonitor--daemon
gettext: enabled
libcurl: 8.19.0
OpenSSL: OpenSSL 3.5.6 7 Apr 2026
zlib: 1.3.2
SHA-1: SHA1_DC
SHA-256: SHA256_BLK
default-ref-format: files
default-hash: sha1
Windows version
Windows 11
Windows CPU architecture
x86_64 (64-bit)
Additional Windows version information
Microsoft Windows [Versión 10.0.26200.8457]
Options set during installation
Editor Option: VIM
Custom Editor Path:
Default Branch Option:
Path Option: Cmd
SSH Option: OpenSSH
Tortoise Option: false
CURL Option: OpenSSL
CRLF Option: CRLFAlways
Bash Terminal Option: MinTTY
Git Pull Behavior Option: Merge
Use Credential Manager: Enabled
Performance Tweaks FSCache: Enabled
Enable Symlinks: Disabled
Enable FSMonitor: Disabled
Other interesting things
git fsck --full reports a healthy repository. git fetch origin succeeds. git push --dry-run origin master succeeds. git update-ref ORIG_HEAD HEAD fails with the same error. The persistent reproduction happened without a stale ORIG_HEAD.lock present. The issue also breaks VS Code Sync Changes.
Terminal/shell
PowerShell 5.1 from VS Code
Commands that trigger the issue
git pull --ff-only origin master
Also reproducible with:
git update-ref ORIG_HEAD HEAD
Expected behaviour
git pull --ff-only origin master should succeed or report Already up to date. when there is nothing to merge. Updating ORIG_HEAD should not fail in this no-op or ahead-only case.
Actual behaviour
Git fails with:
fatal: update_ref failed for ref 'ORIG_HEAD': couldn't set 'ORIG_HEAD'
This also breaks VS Code Sync Changes because the pull step fails. FETCH_HEAD can be equal to or behind local HEAD, so there is no real merge/update work to do, yet the command still aborts on ORIG_HEAD.
Repository
No response
Existing issues matching what you're seeing
Git for Windows version
Windows version
Windows 11
Windows CPU architecture
x86_64 (64-bit)
Additional Windows version information
Options set during installation
Editor Option: VIM Custom Editor Path: Default Branch Option: Path Option: Cmd SSH Option: OpenSSH Tortoise Option: false CURL Option: OpenSSL CRLF Option: CRLFAlways Bash Terminal Option: MinTTY Git Pull Behavior Option: Merge Use Credential Manager: Enabled Performance Tweaks FSCache: Enabled Enable Symlinks: Disabled Enable FSMonitor: DisabledOther interesting things
git fsck --fullreports a healthy repository.git fetch originsucceeds.git push --dry-run origin mastersucceeds.git update-ref ORIG_HEAD HEADfails with the same error. The persistent reproduction happened without a staleORIG_HEAD.lockpresent. The issue also breaks VS Code Sync Changes.Terminal/shell
PowerShell 5.1 from VS Code
Commands that trigger the issue
Expected behaviour
git pull --ff-only origin mastershould succeed or reportAlready up to date.when there is nothing to merge. UpdatingORIG_HEADshould not fail in this no-op or ahead-only case.Actual behaviour
Git fails with:
This also breaks VS Code Sync Changes because the pull step fails.
FETCH_HEADcan be equal to or behind localHEAD, so there is no real merge/update work to do, yet the command still aborts onORIG_HEAD.Repository
No response