Subject: Re: Bug/Weird behaviour with git pull

From: Felipe Contreras <[email-masked]>
Date: Mon, 17 Apr 2023 06:49:59 -0600

Berat Özdemir wrote:
> I stumbled on a weird behavior in git with the pull operation. 
> Imagine the following scenario:
> 
> We have a local and a remote repository, with the branches master, develop and f1. We
> 
> - cloned the remote repository. 
> - checked f1 out
> - checked develop out
> - run git merge f1. Merge was successful. 
> - Did not pushed
> - run git reset --hard origin/develop -> to undo the f1 merge into develop
> - run git pull origin f1
> 
> What did you expect to happen? (Expected behavior)
> I expected that "git pull origin f1" will just update the f1 branch (fetching and merging with origin/f1). In my case I expected nothing to happen since neither local f1 nor origin/f1 did changed while testing. Just develop changed locally, but it was resetted.

The first sentence of the documentation says:

  Incorporates changes from a remote repository into the current branch.

You are effectively merging origin/f1 into your current.

My recommendation to everyone is simply to not use `git pull`, as a lot of time
(most of the time?) it doesn't do what the user wants. It's much better to just
do `git fetch`+`git merge/rebase`.

Cheers.

-- 
Felipe Contreras