git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v2 1/2] remote: advise about force-pushing as an alternative to reconciliation

From
Junio C Hamano <gitster@pobox.com>
Date
Jul 4, 2023, 21:51 UTC
Message-ID
<xmqqr0pn4a6c.fsf@gitster.g>
In-Reply-To
<20230704194756.166111-2-alexhenrie24@gmail.com>
Alex Henrie <alexhenrie24@gmail.com> writes:
Show 22 quoted lines
> Also, don't imply that `git pull` is only for merging.
>
> Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
> ---
>  remote.c | 4 +++-
>  1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/remote.c b/remote.c
> index a81f2e2f17..009034ecde 100644
> --- a/remote.c
> +++ b/remote.c
> @@ -2323,7 +2323,9 @@ int format_tracking_info(struct branch *branch, struct strbuf *sb,
>  			base, ours, theirs);
>  		if (advice_enabled(ADVICE_STATUS_HINTS))
>  			strbuf_addstr(sb,
> -				_("  (use \"git pull\" to merge the remote branch into yours)\n"));
> +				_("  (use \"git pull\" to reconcile your local branch with the remote branch,\n"
> +				  "  or \"git push --force-with-lease\" to overwrite the remote branch with\n"
> +				  "  your local branch)\n"));
>  	}
>  	free(base);
>  	return 1;

Use of --force-with-lease without which commit you assume to be at the tip of their branch is just as risky as blind use of --force.

As I said in a separate message, I do not think "reconcile" and "force" cannot both be sensible choices at the same time. If the user wants not to lose the work by themselves and by others, reconciling would be the only sensible choice and forcing cannot be a sane substitute for that (if the user knows what is at the tip of central repository is wrong and wants to get rid of it, forcing would be a very sensible choice, but then reconciling would not be a subsitute for that in such a case---"merge --ours" does not count as "reconciling").

So, I'd suggest to make it a bit more clear that they are not alternatives in the message, and discourage forcing in the first place by using not "overwrite" but a bit stronger word, like discard or destroy. e.g.

    To reconcile your local changes with the work at the remote, you
    can use 'git pull' and then 'git push'.  To discard the work at
    the remote and replace it with what you did (alone), you can use
    'git push --force'.
or something, perhaps.
Thanks.
Previous: Alex HenrieNext: Alex Henrie
Message 13 of 45 in “advise about force-pushing as an alternative to reconciliation”
  1. 0/2 advise about force-pushing as an alternative to reconciliationAlex Henrie, Jul 2, 2023
  2. 2/2 push: advise about force-pushing as an alternative to reconciliationAlex Henrie, Jul 2, 2023
  3. 1/2 remote: advise about force-pushing as an alternative to reconciliationAlex Henrie, Jul 2, 2023
  4. Phillip WoodJul 3, 2023
  5. Alex HenrieJul 3, 2023
  6. Junio C HamanoJul 4, 2023
  7. Alex HenrieJul 4, 2023
  8. Junio C HamanoJul 5, 2023
  9. Alex HenrieJul 6, 2023
  10. 0/2 advise about force-pushing as an alternative to reconciliationAlex Henrie, Jul 4, 2023
  11. 2/2 push: advise about force-pushing as an alternative to reconciliationAlex Henrie, Jul 4, 2023
  12. 1/2 remote: advise about force-pushing as an alternative to reconciliationAlex Henrie, Jul 4, 2023
  13. Junio C HamanoJul 4, 2023
  14. Alex HenrieJul 4, 2023
  15. 0/2 advise about force-pushing as an alternative to reconciliationAlex Henrie, Jul 6, 2023
  16. 1/2 remote: advise about force-pushing as an alternative to reconciliationAlex Henrie, Jul 6, 2023
  17. Junio C HamanoJul 6, 2023
  18. Junio C HamanoJul 6, 2023
  19. Alex HenrieJul 6, 2023
  20. Junio C HamanoJul 7, 2023
  21. Junio C HamanoJul 7, 2023
  22. Alex HenrieJul 8, 2023
  23. Junio C HamanoJul 9, 2023
  24. Alex HenrieJul 10, 2023
  25. Junio C HamanoJul 11, 2023
  26. Alex HenrieJul 12, 2023
  27. Junio C HamanoJul 12, 2023
  28. Alex HenrieJul 13, 2023
  29. Phillip WoodJul 7, 2023
  30. 2/2 push: advise about force-pushing as an alternative to reconciliationAlex Henrie, Jul 6, 2023
  31. Phillip WoodJul 7, 2023
  32. Junio C HamanoJul 7, 2023
  33. Alex HenrieJul 8, 2023
  34. Phillip WoodJul 11, 2023
  35. Alex HenrieJul 12, 2023
  36. Alex HenrieJul 12, 2023
  37. 0/2 advise about force-pushing as an alternative to reconciliationAlex Henrie, Jul 7, 2023
  38. 1/2 remote: advise about force-pushing as an alternative to reconciliationAlex Henrie, Jul 7, 2023
  39. 2/2 push: advise about force-pushing as an alternative to reconciliationAlex Henrie, Jul 7, 2023
  40. 0/3 don't imply that integration is always required before pushingAlex Henrie, Jul 13, 2023
  41. 1/3 wt-status: don't show divergence advice when committingAlex Henrie, Jul 13, 2023
  42. 2/3 remote: don't imply that integration is always required before pushingAlex Henrie, Jul 13, 2023
  43. 3/3 push: don't imply that integration is always required before pushingAlex Henrie, Jul 13, 2023
  44. Phillip WoodJul 13, 2023
  45. Junio C HamanoJul 13, 2023

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.