With Git 2.48.1, I observe the following behavior: - "git ls-files :^:Documentation/RelNotes | grep Rel" yields "RelNotes", as expected - "git grep squash :^:Documentation/RelNotes" yields the error fatal: ambiguous argument ':^:Documentation/RelNotes': unknown revision or path not in the working tree. Use '--' to separate paths from revisions, like this: 'git <command> [<revision>...] -- [<file>...]' - "git grep squash :^Documentation/RelNotes", "git grep squash :^:Documentation/RelNotes/\*", and "git grep squash -- :^:Documentation/RelNotes" all work as expected So I suppose, upon re-reading, that my question is really: what about ":^:Documentation/RelNotes" is ambiguous when handed to git-grep here? There are a few revision syntaxes that start with colon, but none that are followed directly by a caret, I think—and :^… can't be "revision :'s parent…" -- D. Ben Knoble