Re: [PATCH] pull: add --hard mode

Artur Bieniek <[email protected]>
Newsgroups org.kernel.vger.git
Message-ID <[email protected]>
One case where --ff-only does not seem to cover that audience is when 
the upstream branch itself is rewritten.

For example, a checkout may contain no local development at all and only 
be used to track the latest state of an upstream branch, but if that 
branch is rebased or otherwise force-updated, git pull --ff-only will 
refuse to update it because the histories have diverged.

That seems like a reasonably natural use case for the behavior Phillip 
described: git pull --reset on a clean working tree would mean "make 
this checkout match the fetched upstream", while still refusing by 
default to discard uncommitted changes.

I also like that distinction better than my original --hard proposal, 
since the destructive working-tree behavior would no longer be implicit 
in the primary option.

Thanks,
Artur

On 8/20/26 5:59 PM, Junio C Hamano wrote:
> Phillip Wood <[email protected]> writes:
> 
>> I think if the design was slightly different so that it errored out by
>> default if there were uncommitted changes then that would make it worth
>> while as it is safer than "git fetch; git reset --hard @{u}" and would
>> allow the user to carry over those changes with "--autostash". So to me
>> something like
>>
>> 	git pull --reset [--discard-changes | --autostash]
>>
>> would be a more convincing design.
>> ...
>> If it refused to reset by default when there were uncommitted changes
>> would that be safe enough? Uncommitted changes would be protected and
>> any local commits that become unreachable after the reset can still be
>> retrieved from the reflog. It's not quite the same as integrating remote
>> and local changes, but more like updating the working copy.
> 
> Yup, but git pull --ff-only serves the "No development is done in
> this repository; it is merely to keep the latest sources here"
> audience just fine.
> 
> What you are suggesting may be *useful* for those who agree with
> this statement:
> 
>      I do value my local changes because I haven't committed them,
>      but I am willing to discard these changes and replace them with
>      whatever the upstream did.
> 
> but I am not sure of the use case for a repository/working tree
> that is managed in such a way.
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.