2013-10-12 74 views
3

我有以下情况。Git分支先前的承诺

local repo

我想要做的是以下几点:重置HEAD到的master是在图片上。我还有一个分支叫backupRestore。现在我希望该分支以它创建的提交结束。所以我想删除最后两个提交:Merge branch 'master' of github...remotes\origin\master。通过这种方式将HEAD重置为master(图片上的主控)。问题是,我需要更新我的GitHub库,它有不同的结构(正如你所看到的,remotes/origin/master是在GitHub上HEAD

UPDATE

应用的解决方案我的树是这个样子后: Solved issue

+0

也许[this](http://stackoverflow.com/questions/448919/how-can-i-remove-a-commit-on-github/448929#448929)可以帮助你。 – dyng

回答

2

如果没有人从你的GitHub库拉,如果你没有任何正在进行的地方工作:

git checkout master 
git reset --hard master 
git push -f -u origin master 
git checkout backupRestore 
git push -f -u origin backupRestore 

然后尝试:

git log --graph --pretty=format:'%Cred%h%Creset -%C(yellow)%d%Creset %s %Cgreen(%cr) %C(bold blue)<%an>%Creset' --abbrev-commit --date=relative --branches --all 

,看看最后的结果看起来像你所描述你的问题。

+0

它被迫,但它工作:)。谢谢 – Pio

+1

@Pio它确实是被迫的。这意味着你将无法分辨谁在上游回购中做了'push -f';)http://stackoverflow.com/a/15030429/6309 – VonC