git-svn rebase发生了可怕的错误

时间:2009-11-24 12:51:43

标签: git git-svn

有没有办法重做git-svn rebase。或重置任何效果。

在我的+8000提交git-svn存储库中,合并分支后出现问题。我的本地“主人”没有反映完整的行李箱记录附近的任何内容。

正确运行git svn rebase获取新版本,然后尝试应用svn trunk中所有8000+提交的内容。

有没有办法重置并确保主人的HEAD指向干线的HEAD?

1 个答案:

答案 0 :(得分:8)

术语中存在一些混淆:“HEAD”与“head”或“tip”不同。 “HEAD”指的是当前签出的分支。

反正。 :)

如果你真的想扔掉你已经完成的所有事情并将你的主人归还给行李箱的精确副本,那就非常简单了。假设主人已签出:

git reset --hard trunk

警告:重置 - 硬件会破坏未提交的更改。

如果你想对以前的工作做出更高级的拯救,让我给你一个非常简短的介绍git的众多安全带之一:reflog。例如,如果你说

git log -g master

你会看到主人的“保存点”列表。我们称之为git land中的reflog。每当操作更改分支时,它都会在该分支的reflog顶部添加一个新的保存点。换句话说,如果您执行的最后一次操作可怕地搞乱了您的分支,您可以将分支返回到该操作之前的分支:

git reset --hard master@{1}

一旦你看到一个reflog,@{1}会更有意义。 git还支持更加华丽的语法,如@{10.minutes.ago}

更多的事情是可能的,但这应该足以让目前解决问题。