当我在功能分支上工作时,我必须不时提交我的临时作品,以便其他人可以跟踪我的最新更改,但我更喜欢在我的 IDE 中显示此分支上的更改。
我能想到的第一步是:
git reset --soft HEAD~n
但是我如何重做这些提交,以便我可以基于原始 HEAD 创建新的提交?
这是一个关于与同一 git 分支上的其他人协作的问题。 “b”和“a”(参见上图)是我对一项重要新功能的承诺。我承诺并推动,以便其他人可以根据我的代码开始他们的工作。我想要软重置,因为我想在 IDE 编辑器中看到更改的行,因为这是一个很大的新功能并且非常复杂。当我完成新工作时,我想重播提交“b”和“a”,因为它们被软重置并推送到远程。然后我想创建一个新的提交“n”并继续研究这个新功能。
您想重做已重置的提交吗?
那么,就这样吧
git reflog
并在重置之前查找上次提交的消息。
然后重置为该哈希值。
git reset 147ad0
或者类似的东西
然后,如果您选择了正确的提交,那么您现在将只拥有自大重置以来所做的更改作为本地更改。如果您从引用日志中选择了错误的哈希值,您可以尝试其他哈希值。因为重置不会改变文件的状态,所以您可以尝试一遍又一遍地重置,直到您喜欢所看到的内容为止。