2013-10-12 66 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