说有一些本地提交(A, A1, A2, A3)在当前分离的头,指向提交A,在repo同步后,本地分离的头被覆盖与远程最新分离的头,指向提交B,什么是最好的方法来找到旧的提交(A, A1, A2, A3)?
我能想到的最简单的方法是:
git reflog
查找A:
HEAD@{1}: checkout: moving from A to B
- 然后你可以对A做任何事情,比如
- 为它创建一个新的分支,以防再次丢失:
git switch -c branchname A
,或 - 重新设置或合并到当前的HEAD:
git rebase A
/git merge A
,然后你会看到所有的A, A1, A2, A3
出现在当前的HEAD中,一旦所有的冲突(如果有的话)都解决了,不要忘记创建一个新的git switch -c
分支。
如果没有额外的操作来移动HEAD,您可以使用HEAD@{1}
来知道HEAD在当前之前的确切位置。当然可以用不同的数字:
git log HEAD@{1}