Git pull into wrong branch
Myself and one other developer had been merging and pushing our work to a non-master branch called toolwork. That way, we didn't impact the rest of the team. My topic branch was called DPM-93 and my git workflow was this.
# do some work
git checkout DPM-93
git commit -m "did some work"
# catch up
git checkout toolwork
git pull origin toolwork
# rebase my topic branch
git checkout DPM-93
git rebase toolwork
# merge and push my changes
git checkout toolwork
git merge --no-ff DPM-93
git push origin toolwork
That was mostly working fine until I accidently issued these git commands
git checkout toolwork
git pull origin master
At that point, a bunch of new stuff showed up in branch toolwork and I'm not sure how to get rid of it short of deleting my workspace and re-cloning from the repo.
Is there any way to back this out to the state before the pull?
git reset --hard ORIG_HEAD 
 From the git reset man page (if you just did the pull):  
Undo a merge or pull
$ git pull                         (1)
Auto-merging nitfol
CONFLICT (content): Merge conflict in nitfol
Automatic merge failed; fix conflicts and then commit the result.
$ git reset --hard                 (2)
$ git pull . topic/branch          (3)
Updating from 41223... to 13134...
Fast-forward
$ git reset --hard ORIG_HEAD       (4)
pull " has not made merge commit, so " git reset --hard " which is a synonym for " git reset --hard HEAD " clears the mess from the index file and the working tree.  "pull" or "merge" always leaves the original tip of the current branch in
ORIG_HEAD , so resetting hard to it brings your index file and the working tree back to that state, and resets the tip of the branch to that commit.   See HEAD and ORIG_HEAD for more.  
重置主分支:
git reset --hard origin/master
 You can use git log to find the SHA-1 of the revision you want to be at the head of your toolwork branch, then use git reset --hard <SHA1> to revert your working copy to that revision.  
 Back everything up first!  And re-read the man page for git reset to make sure it's doing what you want.  
EDIT: Oh yes, ORIG_HEAD should contain the right SHA-1. But check first.
链接地址: http://www.djcxy.com/p/26250.html上一篇: 如何将新的(重写)历史推送到远程存储库
下一篇: Git拉错了分支
