如何撤消本地代表中的所有更改并使其在github中克隆上游

时间:2011-04-17 19:18:12

标签: git github

在Github上有一个回购,例如github.com/foo/bar(== upstream)

我把它分到github.com/memo/bar(== origin)

我将其克隆到我的hdd

在x天的过程中,我从上游开始,编辑并推送到原点。

我的问题是:

  1. 现在我想撤消所有更改,并让我的本地主(和origin / master)与上游/主服务器相同。我该怎么做呢?我尝试过reset --hard upstream / master,但后来我无法推送到原点。

  2. 或者,我想创建一个包含我的修改版本(例如experimental.memo)的全新分支,然后使我的主分支与上游/主人相同

  3. 如果我没有github fork(origin),我只是从头开始克隆,但后来我无法推送,所以我找到的唯一解决方案是在github上删除我的fork,然后重新分叉,重新克隆等!

2 个答案:

答案 0 :(得分:3)

假设您没有叉子的用户,您可以在重置为原点后简单地git push -f。这会破坏现有的克隆,所以只有在你确定没有其他人使用你的分叉时才能使用它。

答案 1 :(得分:1)

你的问题似乎有点朦胧。

当然,在硬重置到新的上游后,你不能在没有--force的情况下推送。使用--force来缓解这种情况(但是请注意你自己的fork的用户,如果有的话)

认为您可能希望将“修改后的版本”(更改)修改为新的上游:

git rebase upstream/master

这仍然会重写你的分支历史记录,但它会重新应用你所有的mods