git repo says it's up-to-date after pull but files are not updated

I have 3 repos. A bare repo which I use as a master repo, a dev repo in which I make and test changes, and prod repo from which scripts are executed in the prod environment.

After I have tested changes in the dev repo I push them to the bare repo and they are auto pulled down into the prod repo on a cronjob using a basic script (carrying out git pull command).

I followed through the above procedure for a change, but the altered file will not update in the prod repo.

  • The change is checked in and pushed in the dev repo
  • The pull has been done to the prod repo
  • The git logs for all repos are identical and all show the checkin for this change
  • git branch gives me "* master" for all repos
  • git status for all repos gives me: # On branch master nothing to commit, working directory clean
  • git pull gives me "Already up-to-date" for the dev & prod repos

Using git extensions for a graphical view, it appears each repo is up to date and at the head.

I've tried:

git checkout HEAD  
git pull origin master  
git reset --hard HEAD  
git reset --hard origin/master  
git reset origin/master  

Can anyone help here?


Solution 1:

Try this:

 git fetch --all
 git reset --hard origin/master

Explanation:

git fetch downloads the latest from remote without trying to merge or rebase anything.

Please let me know if you have any questions!

Solution 2:

For me my forked branch was not in sync with the master branch. So I went to bitbucket and synced and merged my forked branch and then tried to take the pull. Then it worked fine.