From: Stefanie Leisestreichler Date: Mon, 16 Sep 2019 11:31:15 GMT Subject: Re: Git diff|status against remote repo Message-ID: <3f0ad1d5-aed4-9bfa-d3f6-09bae21a5dca@peter-speer.de> In-Reply-To: <20190916104505.cykdm2edrz7wy3fm@yadavpratyush.com> 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.