Git with centralized workflow
I’m new to git, and am using a centralized workflow, similar to svn. I’d like to periodically know what my status is compared to the central repo. For example, if I run the following commands…
$ git clone email@example.com:centralrepo/test.git $ cd test; <make some changes inside test/> $ git commit -a $ git pull
…git pull says “already up-to-date”. Why doesn’t git pull report changes, and if that’s the correct behavior, is there a way to know my local is out of sync with the remote?
3 Solutions collect form web for “Git with centralized workflow”
git pull will fetch any changes made in the remote repository into yours, equivalent to
svn update. However, it will not mention if there are changes made at your end that are not on the remote. You can also do
git fetch to fetch updates from the remote without applying them to your workspace.
With recent versions of git (e.g. 18.104.22.168 here)
git status will print some information to help you see this, e.g.:
# On branch master # Your branch is behind 'origin/master' by 20 commits, and can be fast-forwarded.
This is showing after I did a
git fetch and means there are changes waiting to go into my workspace (applied by doing
By contrast, if I pull those in and make and commit a change locally,
git status tells me:
# On branch master # Your branch is ahead of 'origin/master' by 1 commit.
That is, I have local changes that can be pushed to the remote. I could then list them by doing
git log origin/master..
The “git pull” command just pulls in the changes from the remote repo and merges them into your local branch.
If you want to see the difference, you should use git br -a to list the remote branches, and then git diff the remote branch that your local branch is tracking.
git fetch to update your remote branches in your local repository. The dialog will show you if there was something downloaded, which you then compare using
git diff or