Show 63 quoted lines
> On 16/09/19 11:02AM, Stefanie Leisestreichler wrote:
>> Hi.
>>
>> I am far from being a pro in git.
>> There is something I do not understand.
>>
>> This is my git config:
>> [core]
>> repositoryformatversion = 0
>> filemode = true
>> bare = false
>> logallrefupdates = true
>> [remote "origin"]
>> url = ssh://git@192.168.2.2:/home/git/PROJECT.git
>> fetch = +refs/heads/*:refs/remotes/origin/*
>> [branch "master"]
>> remote = origin
>> merge = refs/heads/master
>> [branch "develop"]
>> remote = origin
>> merge = refs/heads/develop
>>
>> I have a local repo called "develop" also on each involved dev machine.
>>
>> Developer A has made changes on nearly each file of the project by changing
>> the namespace and locally commited those changes to his local branch
>> "develop". After that he did a git push.
>>
>> On a not involved machine M I did a git clone
>> ssh://git@192.168.2.2:/home/git/PROJECT.git and after that I did a "git
>> checkout develop" which was followed by a message like "Branch develop is
>> following remote branch develop from origin". I can see all the changes
>> Developer A has made.
>>
>> On my machine DEV I am on my local branch develop. Since I did not pull or
>> merge from origin already, I am not able to see any of those changes
>> developer A has made. So far so good. But I would expect, that git status
>> (which results in "On branch develop. Your branch is up to date with
>> origin/develop) or "git diff origin/develop develop" or "git diff
>> origin/develop...develop" (both no output at all) would give me a hint that
>> I am x commits behind origin/master or (git diff) will show me the changes
>> Developer A committed to the Repro. But nothing...
>>
>> What am I doing wrong?
>
> You haven't gotten the new commits from origin, so your local repo can't
> know how ahead/behind it is from its remote version.
>
> Run `git fetch origin`.
>
> Now if you run `git status`, it should show you that you are X commits
> behind origin.
>
> `git pull` does two things: `git fetch` and `git merge`. fetch
> "downloads" all the commits from remote, and merge then puts them in
> your local branch. So if you do a `git pull`, developer A's changes are
> now merged into your tree. But if you only do a fetch, origin/master
> gets updated, but not your local master. So now status can know how far
> you are behind, but your local branch is not changed yet.
>
> Once you are ready to finally get those changes in your local branch,
> run `git merge origin/master`.
>