Anders Waldenborg <anders@xxxxxxx> writes: > From what I can understand it tries to match *both* on the second level > AND the value of .key (trailers.c:token_matches_item) Yuck, I do not know what were we thinking to design the behaviour like *that*. Or it may be simply buggy. > $ printf '\na: 1\nb: 2\nc: 3\n' | \ > git -c 'trailer.A.key=B' interpret-trailers > B: 1 > B: 2 > c: 3 I can understand the first one (i.e. "trailer.$name.$var" try to match $name as case insensitively) but not the second one. There is not an single rule for "b" trailer, and we should be getting the same behaviour as the third line, i.e. the key not involved in rewriting is passed as-is.