说我正在开发一个项目,而且我正在进行各种提交
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会被归类为'松散的目的'吗?这取决于我所做的重置类型:软,混合,硬吗?
请记住我是初学者,这是正确的工作流程吗?或者这是一种糟糕的工作方式?
由于
答案 0 :(得分:2)
是的,如果你记得哈希,你可以回到它。不过,您可能希望使用git checkout
或git branch
而不是git reset
。 git偶尔会清理你是对的 - 当它发生时你会看到它,因为你会得到一些关于“垃圾收集”的消息。
为了安全起见,您可以保留一个指向旧提交的分支,然后您将能够以符号方式访问它,而不是通过记住哈希值。
如果你需要找一个旧的哈希,但你不记得它,git reflog
可以帮助你找到它。你也可以做一些技巧:
git checkout @{yesterday.at.3.pm}
如果你大致知道你想要回去的时间。