我是Git的新手,因此我一直犯很多错误。其中一个错误是将我的所有更改提交到我的主分支,这意味着我的拉取请求已经变得非常大。我想要的是我的主分支是我分叉的上游存储库的“干净”版本。从那里,我将从主分支机构发出可管理的拉取请求。
为此,我尝试了以下方法:
到目前为止,将我的工作保存在一个单独的分支
使用以下方法将master重置为repo上游:
git reset --hard upstream/master
然后我用:
清理了我的本地分支git clean -f -d
这似乎对我在GitHub上的远程主分支没有影响,它仍然是我做的最后一次提交。
我一直在使用Mac GitHub应用程序,它显示我的分支被重置,直到我按下“sync branch”,此时分支恢复到我上一次提交。
如果我能澄清任何事情,请告诉我。感谢。
答案 0 :(得分:1)
更改本地分支永远不会影响您的远程分支。您需要运行:
git push upstream master
但是,这很可能会失败,因为您已经修改了历史记录(非快进提交)。如果是,则需要强制执行此操作( 警告,这将重写历史记录并导致协作问题;请确保每个人都知道将master
重置为upstream
强>):
git push upstream master -f
GitHub应用程序上的“同步分支”失败的原因是因为它假设(理所当然地),您希望保持远程历史记录的正常运行。这意味着它将git pull upstream master
之前的git push upstream master
。这将快速将您的本地分支返回到原来的位置,然后推送(无更改)。