2012-09-06 225 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

没有为我做任何事情。有一条消息“一切都是最新的” –

相关问题