无法将我的分叉重置为上游

时间:2014-05-27 20:53:57

标签: git github reset

我是Git的新手,因此我一直犯很多错误。其中一个错误是将我的所有更改提交到我的主分支,这意味着我的拉取请求已经变得非常大。我想要的是我的主分支是我分叉的上游存储库的“干净”版本。从那里,我将从主分支机构发出可管理的拉取请求。

为此,我尝试了以下方法:

  1. 到目前为止,将我的工作保存在一个单独的分支

  2. 使用以下方法将master重置为repo上游:

  3. git reset --hard upstream/master
    

    然后我用:

    清理了我的本地分支
      

    git clean -f -d

    这似乎对我在GitHub上的远程主分支没有影响,它仍然是我做的最后一次提交。

    我一直在使用Mac GitHub应用程序,它显示我的分支被重置,直到我按下“sync branch”,此时分支恢复到我上一次提交。

    如果我能澄清任何事情,请告诉我。感谢。

1 个答案:

答案 0 :(得分:1)

更改本地分支永远不会影响您的远程分支。您需要运行:

git push upstream master

但是,这很可能会失败,因为您已经修改了历史记录(非快进提交)。如果是,则需要强制执行此操作( 警告,这将重写历史记录并导致协作问题;请确保每个人都知道将master重置为upstream ):

git push upstream master -f

GitHub应用程序上的“同步分支”失败的原因是因为它假设(理所当然地),您希望保持远程历史记录的正常运行。这意味着它将git pull upstream master之前的git push upstream master。这将快速将您的本地分支返回到原来的位置,然后推送(无更改)。