Re: Git diff|status against remote repo

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





Am 16.09.19 um 12:45 schrieb Pratyush Yadav:
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`.


Thanks a lot. git fetch did the trick.



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux