From: Alex Henrie <alexhenrie24@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: Phillip Wood <phillip.wood123@gmail.com>,
git@vger.kernel.org, git@matthieu-moy.fr, christiwald@gmail.com,
john@keeping.me.uk, philipoakley@iee.email
Subject: Re: [PATCH 0/2] advise about force-pushing as an alternative to reconciliation
Date: Tue, 4 Jul 2023 16:24:00 -0600 [thread overview]
Message-ID: <CAMMLpeS5QJrFFnN14n33_LiaN9MP5Ea=HV24ZFM30zPnmhoqZw@mail.gmail.com> (raw)
In-Reply-To: <xmqqv8ez4ajb.fsf@gitster.g>
On Tue, Jul 4, 2023 at 3:44 PM Junio C Hamano <gitster@pobox.com> wrote:
> > 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 ...
It succeeded; the new branch was created on origin.
> >> 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).
Yes, the rebase was performed with `git pull -r origin master`. Other
work had been done on master while the topic branch was being worked
on.
> 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)...
The user did not want to discard anything from master, but they
absolutely did want to discard the obsolete version of their own
branch, which they made themself.
> >> 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 ...
No one pushed between steps 3 and 4.
> >> 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 ...
The conflicts came from trying to reconcile an older version of the
user's work with a rebased version of the user's work. The user
doesn't want to end up with a history that has two commits from the
same author with the same message.
> >> 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.
The user was only trying to overwrite the old version of their own
branch, which no one cares about. This scenario comes up commonly when
using a single shared remote repository, or when using a forked remote
repository and running `git pull -r upstream master` to incorporate
changes from the upstream remote repository.
I hope that's more clear now. Please let me know if it's not.
-Alex
next prev parent reply other threads:[~2023-07-04 22:24 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-02 20:08 [PATCH 0/2] advise about force-pushing as an alternative to reconciliation Alex Henrie
2023-07-02 20:08 ` [PATCH 1/2] remote: " Alex Henrie
2023-07-02 20:08 ` [PATCH 2/2] push: " Alex Henrie
2023-07-03 15:33 ` [PATCH 0/2] " Phillip Wood
2023-07-03 16:26 ` Alex Henrie
2023-07-04 21:44 ` Junio C Hamano
2023-07-04 22:24 ` Alex Henrie [this message]
2023-07-05 5:30 ` Junio C Hamano
2023-07-06 2:32 ` Alex Henrie
2023-07-04 19:47 ` [PATCH v2 " Alex Henrie
2023-07-04 19:47 ` [PATCH v2 1/2] remote: " Alex Henrie
2023-07-04 21:51 ` Junio C Hamano
2023-07-04 22:41 ` Alex Henrie
2023-07-04 19:47 ` [PATCH v2 2/2] push: " Alex Henrie
2023-07-06 4:01 ` [PATCH v3 0/2] " Alex Henrie
2023-07-06 4:01 ` [PATCH v3 1/2] remote: " Alex Henrie
2023-07-06 20:25 ` Junio C Hamano
2023-07-06 20:40 ` Junio C Hamano
2023-07-06 23:23 ` Alex Henrie
2023-07-07 17:35 ` Junio C Hamano
2023-07-07 17:52 ` Junio C Hamano
2023-07-08 18:55 ` Alex Henrie
2023-07-09 1:38 ` Junio C Hamano
2023-07-10 4:44 ` Alex Henrie
2023-07-11 0:55 ` Junio C Hamano
2023-07-12 4:47 ` Alex Henrie
2023-07-12 15:18 ` Junio C Hamano
2023-07-13 4:09 ` Alex Henrie
2023-07-07 8:48 ` Phillip Wood
2023-07-06 4:01 ` [PATCH v3 2/2] push: " Alex Henrie
2023-07-07 8:49 ` Phillip Wood
2023-07-07 18:44 ` Junio C Hamano
2023-07-08 18:56 ` Alex Henrie
2023-07-11 18:33 ` Phillip Wood
2023-07-12 4:47 ` Alex Henrie
2023-07-12 4:55 ` Alex Henrie
2023-07-07 5:42 ` [PATCH v4 0/2] " Alex Henrie
2023-07-07 5:42 ` [PATCH v4 1/2] remote: " Alex Henrie
2023-07-07 5:42 ` [PATCH v4 2/2] push: " Alex Henrie
2023-07-13 4:41 ` [PATCH v5 0/3] don't imply that integration is always required before pushing Alex Henrie
2023-07-13 4:41 ` [PATCH v5 1/3] wt-status: don't show divergence advice when committing Alex Henrie
2023-07-13 4:41 ` [PATCH v5 2/3] remote: don't imply that integration is always required before pushing Alex Henrie
2023-07-13 4:41 ` [PATCH v5 3/3] push: " Alex Henrie
2023-07-13 9:51 ` [PATCH v5 0/3] " Phillip Wood
2023-07-13 16:15 ` Junio C Hamano
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to='CAMMLpeS5QJrFFnN14n33_LiaN9MP5Ea=HV24ZFM30zPnmhoqZw@mail.gmail.com' \
--to=alexhenrie24@gmail.com \
--cc=christiwald@gmail.com \
--cc=git@matthieu-moy.fr \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=john@keeping.me.uk \
--cc=philipoakley@iee.email \
--cc=phillip.wood123@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).