在我推送到错误的远程分支后恢复

Revert after I pushed to the wrong remote branch

我有一个主分支,然后决定开发新功能并为其创建分支。在我做了一些事情之后,我把它推到了远程。然后我切换到 master 并继续在它上面做一些功能。 我试图将它推送到远程并收到消息,我必须先拉到:

"提示:更新被拒绝,因为你当前分支的提示落后了 提示:它的远程对应物。"

检查 pull 给我的信息是我正在尝试推送以包含来自 "feature" 分支的所有更改的远程信息。所以首先猜测——我推到了错误的远程分支。但是我在遥控器中也看到了特色分支(可能是我推到右边的那个)

我是唯一的贡献者,所以我有权恢复任何内容等等。 从上次推送中恢复远程分支的最佳策略是什么(我使用 bitbucket)?

假设您已经提交了所有更改,请使用以下命令:

git checkout master
git reset --hard <commit_id_you_wish_to_reset_your_master_to>
git push --force origin master

如果你还没有拉下远程更改,你可以强制执行 push:

git push origin +master --force

这会将远程 master 分支(并且只有 master 分支,这是 + 的用途)的状态设置为您本地分支所在的状态。

如果您已经取消了更改并且 merged/rebased 那么您需要将您的本地分支设置为您希望远程处于的状态。您可以使用 reset:

git reset --hard <hash of commit you want to be last on master>

然后用力推。