在Github上有一个回购,例如github.com/foo/bar(== upstream)
我把它分到github.com/memo/bar(== origin)
我将其克隆到我的hdd
在x天的过程中,我从上游开始,编辑并推送到原点。
我的问题是:
现在我想撤消所有更改,并让我的本地主(和origin / master)与上游/主服务器相同。我该怎么做呢?我尝试过reset --hard upstream / master,但后来我无法推送到原点。
或者,我想创建一个包含我的修改版本(例如experimental.memo)的全新分支,然后使我的主分支与上游/主人相同
如果我没有github fork(origin),我只是从头开始克隆,但后来我无法推送,所以我找到的唯一解决方案是在github上删除我的fork,然后重新分叉,重新克隆等!
答案 0 :(得分:3)
假设您没有叉子的用户,您可以在重置为原点后简单地git push -f
。这会破坏现有的克隆,所以只有在你确定没有其他人使用你的分叉时才能使用它。
答案 1 :(得分:1)
你的问题似乎有点朦胧。
当然,在硬重置到新的上游后,你不能在没有--force
的情况下推送。使用--force来缓解这种情况(但是请注意你自己的fork的用户,如果有的话)
我认为您可能希望将“修改后的版本”(更改)修改为新的上游:
git rebase upstream/master
这仍然会重写你的分支历史记录,但它会重新应用你所有的mods