Junio C Hamano <gitster@xxxxxxxxx> writes: > "Mkrtchyan, Tigran" <tigran.mkrtchyan@xxxxxxx> writes: > >>> But more importantly, I think we should justify why this "not >>> allowed" makes sense as the design of the feature. A plausible >>> alternative design would simply follow the "last one wins" paradigm, >>> ... >> This is matter of convention. > > Oh, if you put it that way, it is quite clear that we should redo > this part, as the rest of Git command line processing all pretty > much follow "last one wins". I was mostly curious if there was any > strong reason why this combination has to be different. One reason why "last one wins" aka "you have a chance to correct yourself" is so useful is because people can then use alias to define leading options, e.g. with [alias] myfoo = foo --option1 --option2 --option3 a user can say "git myfoo" to save typing, but in a rare occasion where only options 2 and 3 (but not option 1) are desired, can use "git myfoo --no-option1" to countermand it. Unfortunately, I do not think we can use the same technique for options that is given to the "git" potty, e.g. with [alias] paged-status = --paginate status you can say "git paged-status" to have your "git status" output sent to the pager, but you cannot say "git paged-status --no-pager" to defeat that leading option. We may want to find a way to correct it, but it is rather low on the priority scale ;-)