git-detached-head - 恢复 git 分离的头部提交
问题描述
我使用 IntelliJ 将更改推送到带有分离头的分支。它给了我一个模糊的警告,但没有强迫就接受了我的推动。然后我检查了分支,我的所有更改都消失了。他们在哪里,我如何让他们回来?
解决方案
如果你输入 git reflog,它会显示 HEAD 所指向的修订历史。你分离的头应该在那里。找到它后,执行 git checkout -b my-new-branch abc123 或 git branch my-new-branch abc123 (其中 abc123 是分离的 HEAD 的 SHA-1)来创建一个指向分离头的新分支。现在您可以随意合并该分支。
一般来说,如果你在一个分离的头上工作后签出一个分支,Git 应该告诉你从你一直在分离的头上的提交,所以你可以在需要时恢复它。我从未使用过 SourceTree,所以我不知道它是否会转发该消息。但如果它确实显示了该消息,那么您应该能够使用它来查找提交,然后再次使用 git checkout -b 或 git branch 从该提交创建一个分支。
推荐阅读
- python - 我必须比较学生是否超过 51 与 FOR
- html - CSS+Vueitfy 填充剩余高度并在需要时添加滚动条
- android - 为 Gson 数据类设置 Dynamic SerializedName 注解
- google-apps-script - 我如何以 Gdocs 中的表格为中心(使用 appendTable() 从 Gsheet 导入表格)
- javascript - 当遇到句点或逗号时,如何减慢从数组中键入随机字符串的函数?
- nginx - 在编译新更新的 nginx 之前在 Centos 7 上安装更新的 Openssl,但是将源目录放在哪里?
- arrays - SwiftUI - 从嵌套数组中列出对象
- python - 如何使用win32com退出Excel而不保存?
- c - 使用 usleep 函数时出错,因为编译器说“尽管没有在此范围内声明‘usleep’”,包括所有需要的库
- xml - 将多级 XML/JSON 数据保存到表中