在重置之前撤消git reset到uncommited状态?

所以我只是在我的master分支上测试了一些东西,但知道我想在我开始这些测试特性之前重置/恢复到master上的最后一个提交。 所以我马上创建了一个新的分支(让我们称之为testfeatures ),我认为这不会受到在master分支上使用git reset --hard影响。 新的testfeatures分支创建时的状态与master相同(因此它仍具有所有这些测试功能),然后我再次检查出master。 在掌握时,我使用了git reset --hard <#lastcommitidhere> 。 现在,这重置我的主分支到我想要它,但来找出它也重置以前创建'testfeatures'分支(创建此分支后,我没有提交任何东西,然后切换回主和重置)。

所以我的问题是,我将如何撤销任何分支上的重置以重新获得这些测试功能? 可能吗? 此外,为什么重设大师对我的其他部门有影响,因为我认为他们是孤立的?

此外,“测试功能”在重置之前并未在主分支上进行提交。


git中的未改变的更改不在分支上,git也不会跟踪它们。 所以你基本上有一些承诺的变化,git确实跟踪了,并且你做了一些额外的改变。 当你创建一个新的分支时,未提交的更改不会被重复(即在两个分支上),因为git不会跟踪它们。 当您通过执行重置来移除更改时,它们会丢失。

实现你想要的东西的正确方法是使用git stash临时保存更改,然后执行所需的检查,然后使用git将更改返回。 不幸的是,在你的情况下,没有什么可以做的。

作为未来的建议,尽量不要使用git reset --hard。 有更好的选择。 另一种方法是实施变更,签出旧头,做你的事情,如果需要的话,做一个恢复。


实际上有可能从这种情况中恢复过来。 用非常有趣的答案查看相关问题:撤销git reset - 在暂存区域中使用未提交的文件

链接地址: http://www.djcxy.com/p/4033.html

上一篇: Undoing a git reset to uncommited state before reset?

下一篇: Lost all files due to Git in Adobe Brackets