Junio C Hamano <gitster@xxxxxxxxx> writes: >> - if (!num_theirs) >> + if (!num_theirs) { >> strbuf_addf(sb, >> Q_("Your branch is ahead of '%s' by %d commit.\n", >> "Your branch is ahead of '%s' by %d commits.\n", >> num_ours), >> base, num_ours); >> - else if (!num_ours) >> + strbuf_addf(sb, >> + _(" (use \"git push\" to publish your local commits)\n")); >> + } else if (!num_ours) { > > The message should make it clear that the two words in double quotes > only hint what command is used to "publish your local commits" and > not to be taken as literal "here is what you exactly would type", > but I do not think that is what I would get from this if I were a > total newbie who would need this advise. > > It is even more true given that this is showing an arbitrary, and > more likely than not a non-current branch, especially with the > recent move from "matching" to "simple" where a naive use of "git > push" is to push the branch that is currently checked out and no > other branches. I don't understand what you mean by "non-current". If you mean a local branch not pointed to by HEAD, then I don't understand the remark, as the message is shown by "git status" (looking more closely, it is also shown by "git checkout", but after switching branch so also showing a message about the current branch) and precisely talks about the current branch. If you mean that the upsteam branch has a name different from the local one, then with "push.default=simple", argumentless "git push" will fail and show a detailed explanation to the user, which I find acceptable. I can tweak the advice to show the full "git push" command with push.default=matching/current, but first, I'd like to understand your remark. >> + strbuf_addf(sb, >> + _(" (use \"git pull\" to update your local branch)\n")); >> + } else { > > Likewise, and the non-currentness of the branch being described is > even worse in here, as unlike "git push" that can still be used to > push a non-current branch, "git pull" is never to be used to update > local branch that is not current, which means the advice must mention > "git checkout" somewhere. I understand this remark even less. We're showing a message about the current branch and its upstream branch. In which case would "git pull" not do the right thing? -- Matthieu Moy http://www-verimag.imag.fr/~moy/ -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html