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

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

From
Junio C Hamano <gitster@pobox.com>
Date
Jul 4, 2023, 21:44 UTC
Message-ID
<xmqqv8ez4ajb.fsf@gitster.g>
In-Reply-To
<c3c36f93-3fc5-7f7d-1c24-e6925729cc96@gmail.com>
Phillip Wood <phillip.wood123@gmail.com> writes:
Show 6 quoted lines
> Hi Alex
>
> On 02/07/2023 21:08, Alex Henrie wrote:
>> Many times now, I have seen novices do the following:
>> 1. Start work on their own personal topic branch
>> 2. Push the branch to origin

And did this succeed, or did this fail? I'd assume that it failed, because othrewise you would not be rebasing your work done in #1 on top of what the central repository has. Also ...

>> 3. Rebase the branch onto origin/master

... the user's better have done "git fetch" to update origin/master before this step. And that means this can just be done with "git pull --rebase" (or you may already have configured pull to do so).

In any case, assuming that this was indeed the intention of the user, i.e. the user never wanted to discard the changes made in the central repository (presumably by others)...

>> 4. Try to push again, but Git says they need to pull

... if this happened, it is because somebody else pushed in the meantime, right? Then ...

>> 5. Pull and make a mess trying to reconcile the older topic branch with
>>     the rebased topic branch

... this means that somebody else's work was something that overlapped with what you did in #1, and then you do want to clean up the mess carefully, so that you do not lose the work by that somebody else. So ...

>> Help avoid this mistake by giving advice that mentions
>> force-pushing,

... why would it possibly be a good idea to suggest force pushing, which discards other's work? I do not quite understand.

Show 12 quoted lines
> I don't think we want to be advising users to force push. For the case
> you mention above I think it would be much safer to advise them to use
>
> 	git push --force-if-includes
>
> In the absence of background fetches even
>
> 	git push --force-with-lease
>
> is still safer than
>
> 	git push --force

Absolutely. git push --force-with-lease=$(git merge-base HEAD origin/master) or something, perhaps, would be even better.

Thanks.
Previous: Alex HenrieNext: Alex Henrie
Message 6 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.