Git:丢弃分散的本地分支上的所有更改

时间:2010-03-01 19:58:48

标签: git

我有一个跟踪远程分支的本地主题分支。为了论证,请提交历史记录如下:

A--B--C--O1--O2--O3 (origin/phobos)
       \
         L1--L2--L3 (phobos)

查看了相关的提交历史记录后,我现在想要放弃对本地phobos分支的所有更改,并将其恢复为origin/phobos的直接副本,以便本地历史记录看起来如此像这样:

A--B--C--O1--O2--O3 (phobos origin/phobos)

我真的不希望对phobos分支进行本地更改,我真的不希望之后在源存储库中显示任何合并。 (所以,合并并不是我想到的。)

这看起来应该很容易,但是我的google-fu让我失望了。我该怎么做?

2 个答案:

答案 0 :(得分:282)

git checkout phobos
git reset --hard origin/phobos

这告诉Git将phobos的头重置为与origin/phobos相同的提交,并更新工作树以匹配。

答案 1 :(得分:71)

删除分支,然后重新创建它:

$ git branch -D phobos
$ git checkout --track -b phobos origin/phobos