10

当地分支机构:-

'特征/100'

和远程分支: -

'掌握'

'版本 2'

不小心,

  1. 我已将我的功能分支“feature/100”合并到主分支
  2. 还将其推送到远程存储库。

但在真正的“ feature/100 ”中应该已经合并到远程分支“ Version2 ”中

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

我已将功能分支“ feature/100 ”合并到远程分支“ Version2 ”并将其推送到服务器。

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

但是我想删除我合并的最后一个推送并提交到主分支。如何?

旁注我只是一个在这个项目上工作的人。所以即使推送的提交被删除,它也不会伤害其他任何人

4

3 回答 3

21

您可以:

还原您的更改

git revert HEAD

这将创建一个新的提交,恢复您刚刚推送到 master 的更改。这是最安全的选择,因为其他人可能已经取消了您提出的更改。

更改您的提交历史并强制推送更改

您可以删除刚刚推送的提交:

git reset --hard HEAD~1

git push origin master --force

除非您绝对确定没有人从 master 中删除您的更改,否则您不想这样做。

有关详细信息,请参阅从 Git 中的分支删除提交

于 2012-09-06T18:03:01.670 回答
1

您可以还原 master 上的合并提交。当您以后真的想合并分支时,您必须先还原还原。有关详细说明,请参见此处:

http://www.kernel.org/pub/software/scm/git/docs/howto/revert-a-faulty-merge.txt

于 2012-09-06T17:59:11.250 回答
0

可能为时已晚,但是如果您想master通过一次提交来回退推送的分支(?),请发出以下命令:

git push origin +master^:master

+强制推送,master^描述前一个最后一个提交。:master推送到远程主分支。

于 2012-09-06T17:55:26.607 回答