`大家好,
我是 git 新手。我正在做一个项目,并与git彻底交互,今天犯了一个错误。 我以这种方式 merge 了两个分支: 分支_01 >> 分支_02 然后, 分支_02 >> 分支_01
服务器上的事件分支是branch_02
并且丢失了从 2022 年 11 月 5 日到今天的从 Branch_02 开始的所有提交。现在,branch_01 拥有本应位于branch_02 上的全部 23 个提交。
以前: 我以这种方式 merge 了两个分支: 分支_01 >> 分支_02 然后, 分支_02 >> 分支_01 我试过: 分支_01 >> 分支_02
但没有拿回我的提交。 `
最佳答案
git reflog
来救援。它将为您提供分支所发生情况的“后端”。你会得到一个看起来像这样的日志
b5cc58d (HEAD -> main, view-pagination) HEAD@{0}: checkout: moving from typeorm-module to main
2703297 (typeorm-module) HEAD@{1}: commit: WIP some mess
b5cc58d (HEAD -> main, view-pagination) HEAD@{2}: checkout: moving from main to typeorm-module
b5cc58d (HEAD -> main, view-pagination) HEAD@{3}: merge view-pagination: Fast-forward
2e4e719 HEAD@{4}: checkout: moving from view-pagination to main
在该列表中,找到“一切都变得糟糕之前”的那一刻,然后进行硬重置:
git reset --hard HEAD@{4}
在两个分支上。
然后喝杯茶,并按照您最初想要的方式进行 merge 。
关于Git merge 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74790863/