2012-09-06 214 views
4

一個本地分支: -如何刪除推送到遠程存儲庫的提交?

'功能/ 100'

和遠程分支機構: -

'主人'

'版本2'

有意,

  1. 我已經合併我的特性分支「功能/ 100」到主
  2. 同時它推到遠程存儲庫。

但在真正的 '功能/ 100' 應該已經被合併到遠程分支 '版本2'

我如何修復它(部分): -

我已經合併功能分支'功能/ 100'到遠程分支'版本2',並將其推送到服務器。

git checkout Version2 
git merge --squash feature/100 
git add . 
git commit -m 'New message' 

但我想刪除我已合併並提交到主分支的最後一個推。怎麼樣?

旁註我只是一個在這個項目上的工作。所以,即使推犯被刪除它不會傷害任何人

+0

爲什麼你使用'--squash'? – knittl

+1

@ knittl:因爲我想合併我的功能分支在一次提交 – user1327064

回答

12

您可以:

還原你的變化

git revert HEAD

這將創建一個新的提交後歸還的更改你只是推升主人。這是最安全的選擇,因爲其他人可能已經拉下了您推動的變更。

更改提交歷史和力推變化

可以刪除承諾,你只是推了:

git reset --hard HEAD~1

git push origin master --force

你不想要做到這一點,除非你確定沒有人從主人手中取消你的更改。

欲瞭解更多信息,請參閱Delete commits from a branch in Git

0

它可能爲時已晚,但如果你想你的倒帶分支推(?master)由一個提交,發出以下命令:

git push origin +master^:master 

+,使強制推送,master^描述以前,最後提交。 :master推送到遠程主分支。

+0

沒有爲我做任何事情。有一條消息「一切都是最新的」 –

相關問題