git是否错误地改变了起源

时间:2014-10-17 01:35:53

标签: git

如何还原我的rebase?我在当地分公司(abc),并希望它用起源来重新定位它。以下是我发布的命令:

git checkout live
(On branch live)
git pull

在此之后,我想我忘记切换回我当地的分行' abc'然后我就开始对它进行调整,当我跑出“git status'命令,我意识到我在本地重新设置了分支。

git status
On branch live
Your branch is ahead of 'remotes/origin/live' by 13 commits.
  (use "git push" to publish your local commits)

nothing to commit, working directory clean

我不想推送任何东西,但想要删除它显示的那13个提交。这样做的正确方法是什么?

3 个答案:

答案 0 :(得分:3)

您可以使用git reset --hard <SHA>返回原始状态。我会建议先创建一个实验分支。

另请阅读并查看以下文档 - http://git-scm.com/docs/git-reset

答案 1 :(得分:2)

通常,请阅读git reflog以确定要重置的位置。

在这种情况下,您似乎知道要重置为origin/live(但要检查git log origin/live..live以确定)。

一旦您知道自己要重置的内容,请运行git reset --hard commit-to-reset-to,在这种情况下git reset --hard origin/live

答案 2 :(得分:1)

使用git reflog命令显示当前分支的reflog。这是本地维护的数据,具有本地分支指向的每个提交的历史记录。您可以使用此数据查找本地分支在rebase之前指向的提交。

如果重新定位是您执行的最后一次操作,那么git reset --hard HEAD@{1}应撤消此操作(并且它还会放弃您对工作树所做的任何更改)。