Git checkout已删除最新提交

rsl1atfo  于 2023-05-27  发布在  Git
关注(0)|答案(1)|浏览(115)

最近,我对代码做了大量的修改,并使用以下命令提交。

git add .
git commit -m "example message"
git push origin development

当它不工作时,它说这是因为它找不到名为development的分支。我认为这是因为它没有正确的凭据,所以我做了gh auth login并重新认证。然后我意识到我仍然在推动主分支,所以我切换到使用以下内容的开发。
git checkout development
我的印象是这是切换分支的正确命令,但我不确定。问题是,不知何故,在我重复了第一个代码块之后,我对代码所做的所有更改都消失了。为什么一切都恢复到旧版本,我如何才能得到新的代码回来?
虽然我在Git方面非常缺乏经验,但我很高兴,因为我实际上没有删除任何文件,应该在某个地方有备份,我只是不知道如何访问它。重新编写所有代码会非常烦人。
我已经尝试执行以下命令
git log --oneline
这是我的改变。

3e3caf2 (HEAD -> development, origin/development) backend function to get data
1fcd9d4 added match
66b9527 (origin/dev, dev) removed cache
14b5cf7 initial commit
7e7a826 initial commit

即使我提交了我的更改,最新的提交也只显示我的代码被恢复到的分支。我能做些什么来恢复我的最新提交?

kxe2p93d

kxe2p93d1#

据我理解你的问题,并作为托波赛欧在他的回答中提到,你的变化应该是目前的主要分支
检查的方法是运行

git log --oneline main

你可以从你在主分支上添加的提交中获得提交哈希,然后你可以在你的开发分支上运行一个cherry-pick的提交哈希。因此,当您在开发分支上 checkout 时,您可以执行以下命令:

git cherry-pick {commit_hash}

然后,按您的意图推送开发分支。

相关问题