回到错误的git重置

时间:2013-05-22 17:24:48

标签: git sha git-reset

说我正在开发一个项目,而且我正在进行各种提交

A - B - C - D - E

我意识到我犯了一个错误,需要git reset才能回到C版。

所以我继续做这样的提交:C - D2 - E2 - F2 - G2等。

当D2与D不同时,E2与E等不同。

然后我意识到我在开始时是对的,我需要回到E。

只要我记下版本E的SHA,这可以通过git reset hjsdkgjdfg来实现,其中hjsdkgjdfg是E的哈希值吗?我听说git'不时清理'(删除)松散的末端 - D和E会被归类为'松散的目的'吗?这取决于我所做的重置类型:软,混合,硬吗?

请记住我是初学者,这是正确的工作流程吗?或者这是一种糟糕的工作方式?

由于

1 个答案:

答案 0 :(得分:2)

是的,如果你记得哈希,你可以回到它。不过,您可能希望使用git checkoutgit branch而不是git reset。 git偶尔会清理你是对的 - 当它发生时你会看到它,因为你会得到一些关于“垃圾收集”的消息。

为了安全起见,您可以保留一个指向旧提交的分支,然后您将能够以符号方式访问它,而不是通过记住哈希值。

如果你需要找一个旧的哈希,但你不记得它,git reflog可以帮助你找到它。你也可以做一些技巧:

 git checkout @{yesterday.at.3.pm}

如果你大致知道你想要回去的时间。