这是我在我应该稳定的树枝上做的事情……

% git rebase master
First, rewinding head to replay your work on top of it...
Fast-forwarded alpha-0.3.0 to master.
% git status
# On branch alpha-0.3.0
# Your branch is ahead of 'origin/alpha-0.3.0' by 53 commits.
#
nothing to commit (working directory clean)
% git push
Fetching remote heads...
  refs/
  refs/heads/
  refs/tags/
  refs/remotes/
'refs/heads/master': up-to-date
updating 'refs/heads/alpha-0.3.0'
  from cc4b63bebb6e6dd04407f8788938244b78c50285
  to   83c9191dea88d146400853af5eb7555f252001b0
    done
'refs/heads/unstable': up-to-date
Updating remote server info

我后来意识到,这完全是一个错误。我想撤消整个过程,并将alpha-0.3.0分支恢复到原来的样子。

我该怎么办?


当前回答

您需要确保这个存储库的其他用户没有获取不正确的更改,或者试图在您希望删除的提交之上构建,因为您要倒带历史记录。

然后你需要“强制”推旧的引用。

git push -f origin last_known_good_commit:branch_name

或者在你的情况下

git push -f origin cc4b63bebb6:alpha-0.3.0

您可能已经在远程存储库上设置了receive. denynonfastforward。如果是这种情况,那么您将得到一个包含短语[remote rejected]的错误。

在这个场景中,您必须删除并重新创建分支。

git push origin :alpha-0.3.0
git push origin cc4b63bebb6:refs/heads/alpha-0.3.0

如果这不起作用——可能是因为设置了receive.denyDeletes,那么您必须直接访问存储库。在远程存储库中,您必须执行以下管道命令。

git update-ref refs/heads/alpha-0.3.0 cc4b63bebb6 83c9191dea8

其他回答

可以使用reset命令

git reset --soft HEAD^1

然后:

git reset <files>
git commit --amend

and

git push -f

撤销多次提交 git reset——hard 0ad5a7a6(只提供提交SHA1哈希)

撤消上次提交

git reset—soft HEAD~1(对最后一次提交的修改将被删除)

git push origin +7f6d03:master

这将恢复您的回购到提到的提交编号

现有的答案是正确的,但是如果你需要撤消推送,但是:

您希望将提交保存在本地,或者保留未提交的更改 你不知道你刚刚推送了多少提交

使用此命令将更改还原为ref:

git push -f origin refs/remotes/origin/<branch>@{1}:<branch>

您需要确保这个存储库的其他用户没有获取不正确的更改,或者试图在您希望删除的提交之上构建,因为您要倒带历史记录。

然后你需要“强制”推旧的引用。

git push -f origin last_known_good_commit:branch_name

或者在你的情况下

git push -f origin cc4b63bebb6:alpha-0.3.0

您可能已经在远程存储库上设置了receive. denynonfastforward。如果是这种情况,那么您将得到一个包含短语[remote rejected]的错误。

在这个场景中,您必须删除并重新创建分支。

git push origin :alpha-0.3.0
git push origin cc4b63bebb6:refs/heads/alpha-0.3.0

如果这不起作用——可能是因为设置了receive.denyDeletes,那么您必须直接访问存储库。在远程存储库中,您必须执行以下管道命令。

git update-ref refs/heads/alpha-0.3.0 cc4b63bebb6 83c9191dea8