Turns out the previous behavior can be achieved with git restore --source='stash@{0}' -- "some-file.txt" On Sun, 27 Oct 2024 at 23:16, Devste Devste <devstemail@xxxxxxxxx> wrote: > > What did you do before the bug happened? (Steps to reproduce your issue) > git checkout 'stash@{0}' --theirs -- "some-file.txt" > > What did you expect to happen? (Expected behavior) > Checking out the file exactly as it is in the stash with any conflicts > resolved using the stash's data > > What happened instead? (Actual behavior) > fatal: '--merge', '--ours', or '--theirs' cannot be used when checking > out of a tree > > What's different between what you expected and what actually happened? > Error and unresolved conflicts > > Anything else you want to add: > This behavior was changed in 2.43 > https://www.spinics.net/lists/git/msg463600.html > However, I think this change is wrong. Since using --theirs still > makes sense, if you want to restore a file to the exact state it was > in the stash. > While the change probably had in mind that this should be used: git > cherry-pick --no-commit --mainline 1 --strategy-option=theirs > 'stash@{0}' > This leads to different results than git checkout --theirs, since it > tries to resolve the conflicts and is not correctly using "theirs" to > automatically resolve them > How can the pre 2.43 behavior be achieved? > > Please review the rest of the bug report below. > You can delete any lines you don't wish to share. > > > [System Info] > git version: > git version 2.43.5 > cpu: x86_64 > no commit associated with this build > sizeof-long: 8 > sizeof-size_t: 8 > shell-path: /bin/sh > uname: Linux 5.14.0-162.23.1.el9_1.x86_64 #1 SMP PREEMPT_DYNAMIC Tue > Apr 11 19:09:37 UTC 2023 x86_64 > compiler info: gnuc: 11.4 > libc info: glibc: 2.34 > $SHELL (typically, interactive shell): /bin/bash > > > [Enabled Hooks]