我意外地將功能分支推送到遠程主服務器。現在我想將主人恢復到之前的提交。當我選擇「將當前分支還原到此提交」時,只有本地分支被還原,並且由於遠程主服務器提前55(意外推送),我無法將剛剛還原的本地主服務器推送到遠程服務器。使用sourcetree恢復推送到遠程
在SO和Google上查看此問題時,我發現許多人使用命令行使用強制推送。但是由於我使用的是源代碼樹,我想提出一種實際使用源代碼樹的方法。
我還發現了底墊的選擇,但我似乎無法找到一個一步一步的教程..
任何想法?
我意外地將功能分支推送到遠程主服務器。現在我想將主人恢復到之前的提交。當我選擇「將當前分支還原到此提交」時,只有本地分支被還原,並且由於遠程主服務器提前55(意外推送),我無法將剛剛還原的本地主服務器推送到遠程服務器。使用sourcetree恢復推送到遠程
在SO和Google上查看此問題時,我發現許多人使用命令行使用強制推送。但是由於我使用的是源代碼樹,我想提出一種實際使用源代碼樹的方法。
我還發現了底墊的選擇,但我似乎無法找到一個一步一步的教程..
任何想法?
Sourcetree不公開-f
標誌你:https://answers.atlassian.com/questions/54469/how-do-i-perform-a-forced-push-push-f-from-sourcetree
因此,只有這樣,才能使遠程回到它的原始狀態是git revert
每次提交你以相反的順序介紹。
假設遠程已於提交A
,你推你的特性分支控股承諾B
,C
和D
,你必須
git revert D
git revert C
git revert B
git push
推將正常工作,因爲你沒有修改推歷史,但而是推動一系列新的變化。
如果你想縮短你的系列將恢復到一個承諾,你可以做一個
git rebase -i origin/master
,並選擇您的每一個revert
提交的是squashed
。然後,您的push
將只包含一次提交,一次性返回D
,C
和B
。
我發現大部分與sourcetree相關的答案都說'-f'不是必需的,而且可以用'rebase'來完成。我假設有一個sourcetree的方法來實現這一點,但你的回答表明它不能用sourcetree完成? SO上的大多數其他答案也顯示實際的GIT命令,而不是源樹步驟。我不是GIT精明的,可以自己做這個翻譯。 – Greggg 2014-10-27 15:15:19
這不能用rebase來完成。如果你願意使用控制檯,那麼在那裏指定'-f'標誌。 – eckes 2014-10-27 15:24:24
所以不可能只使用SourceTree? – 2014-10-29 12:13:40