gpt4 book ai didi

git - 如何在 git 子模块更新和 checkout 后恢复丢失的提交?

转载 作者:太空狗 更新时间:2023-10-29 13:16:28 25 4
gpt4 key购买 nike

这是类似问题的变体,其中提交最终出现在 headless 分支中。我添加这个问题来涵盖这个特殊情况。就我而言,问题如下:

  • 我做了一个 git submodule update,这使存储库处于 headless 状态(我忘了再次 checkout 到 master)
  • 我提交了代码,实际上提交了几次
  • 当我正要推送到 github 时,我意识到我处于 headless 状态,并切换到 master 分支(github 应用程序使它变得非常简单)

结果:我的提交现在处于 git limbo 状态。

最佳答案

基于答案 herethere ,我使用 git reflog 找到了出路:

> git reflog
6b0da0d HEAD@{0}: rebase finished: returning to refs/heads/master
6b0da0d HEAD@{1}: pull --rebase --progress --prune --recurse-submodules=on-demand origin: check
d55ecfb HEAD@{2}: checkout: moving from fed7916169d740644dbbd9ea48e2d2cd510ce32d to master
fed7916 HEAD@{3}: commit: more secret stuff.
818bf20 HEAD@{4}: commit: incredible stuff I am doing, hopefully won't end up in limbo.
...etc...

提交 fed7916 是我要 merge 到 master 的那个。为此,我简单地输入:

> git merge fed7916

merge 没有问题(它应该是因为它无论如何都是从 master 所在的地方分支出来的)并且我所有的提交现在都可以再次访问,并准备好被推送到 github。

关于git - 如何在 git 子模块更新和 checkout 后恢复丢失的提交?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19055122/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com