2012-04-08 92 views
2

我在一個叫獅子分會的工作,我錯誤地做到了這一點:還原遠程合併

git push origin lion:master 

,而不是

git push eng lion:master 

基本上第二行是爲推動獅子分支到分段Heroku的應用程序,但我錯誤地將我所有的代碼合併到原始大師。

我該如何回覆?我在我的分支中有大約200次提交。

格雷格

+0

看看你是否發現任何有用的在[這](http://stackoverflow.com/questions/179123/how-do-i-edit-an-incorrect-commit-message-in-git),所有時間最流行的SO問題之一(在至少到現在爲止) – DOK 2012-04-08 18:16:40

回答

1

命令'git reset'採用可選的提交參數。所以,如果你有機會到原始版本庫,你可以嘗試:

git reset [--soft | --mixed] <last-good-commit>   # in the remote/origin repository 

如果您沒有訪問到存儲庫,你應該能夠做到:

git checkout -b rework <last-good-commit> 
git push origin rework:master         # The push merge will produce a commit that works back to <last-good-commit> 
+1

我得到「![拒絕]返工 - >主人(非快進) 錯誤:未能推送一些文件到'[email protected]:....' 爲了防止你失去歷史,快進更新被拒絕.... – 2012-08-09 20:48:13

2

假設沒有其他人已經走了,並得到了新的變化:

1)如果你有到origin庫直接訪問,您可以在origin相關分支機構做git reset --hard <commit ID>

2)或者,你可以做一個git push -f與舊的提交ID也許。

+0

僅重置最後一次提交。我有200 ... – Gregory 2012-04-08 17:31:25

+0

它不,如果你做'git reset --hard ',這是我駕駛的。 – 2012-04-08 17:32:10