如何在git revert之后返回git分支

Jer*_*art 3 git

因此,由于我的代码存在根本问题,我最终不得不更改项目的整个目录树 - 或者我认为.所以我在重大改变之前做了一个提交,然后在做出我不需要的更改后意识到.所以我表演了

git checkout ##SHA##
Run Code Online (Sandbox Code Playgroud)

我能够让整个项目按照应有的方式运行,但现在我遇到了另一个问题.我不再在我工作的分支机构中签出.如何保留我现在拥有的代码并回到分支机构工作?

git branch -a
Run Code Online (Sandbox Code Playgroud)

说我在

* (no branch)
Run Code Online (Sandbox Code Playgroud)

任何人都知道我可以做什么,而不只是建立一个新的分支并删除旧的分支?

man*_*lds 6

永远不会git checkout <hash>.它旨在临时检查提交(因此您看到的是无分支).您想要做的是,在分支中,git reset --hard <hash>(如果您在工作目录中需要更改,则删除--hard.)

恢复:

git checkout the_branch
git reset --hard <hash>
Run Code Online (Sandbox Code Playgroud)

请注意,<hash>上述内容与您git checkout在尝试"还原"更改时使用的内容相同.