代码之家  ›  专栏  ›  技术社区  ›  Erik Hermansen

错误地推送到master后,将更改推送到不同的分支

git
  •  1
  • Erik Hermansen  · 技术社区  · 6 年前

    我的意思是将我的更改提交到本地“feature”分支,并将它们推送到相应的远程“feature”分支。但是,我却意外地将更改提交到本地“主”分支,并将更改推送到远程“主”分支。

    如何撤消推送到“master”(本地和远程)的更改,以及如何将相同的更改推送到预期的“feature”分支(本地和远程)?

    2 回复  |  直到 6 年前
        1
  •  1
  •   eftshift0    6 年前

    签出本地功能分支。仔细挑选你在master上所做的更改。说吧,那是最后两次了 git cherry-pick master~2..master git branch -f master master~2 . 然后按到正确的位置: git push -f whatever-remote master . 应该可以。

    我想你有一个当地的分支机构来解决这个问题,对吧?你错误地把树枝推到主人手里。我们称之为分支机构

    git push whatever-remote branch-a # if you want the remote branch to be called branch-a as well git push whatever correct-revision-id:master # revert master to where it was

        2
  •  1
  •   ishwardgret    6 年前

    您需要强制推送到旧的引用:

    git push -f origin last_commit:branch_name
    

    然后可以将更改推送到功能分支。确保没有其他用户试图在要删除的提交之上构建。