If I understood correctly your problem, you have three repos
- A remote on GitHub
- A local for development
- A local on your staging server
You have first update all the repos, then rewritten the history on the remote and on the development and tried to pull on the staging. Unfortunately, the staging already had already its own history, so try the following on staging:
git fetch
git reset --hard origin/staging
This will force the history on staging to be rewritten as well.