我正在改变一个分支机构。当冲突发生时,我用了,
git rebase --skip
代替,
git rebase --abort
(我想因某种原因重新开始变基)。
现在,当我再次开始变基时,它表示分支是最新的,但它没有所有的变化。
答案 0 :(得分:1)
您可以使用的一件事是reflog
。本质上git reflog
与git log
类似,但它代替了代码提交,它包含了对repo的git历史记录所采取的所有操作。
例如,这是我最近的一个项目的reflog:
1b229a2 HEAD@{0}: commit: Speed up debug mode a little bit
9976a41 HEAD@{1}: commit (amend): Split LooseTire down to gameplay and presentation
b825442 HEAD@{2}: commit: Split LooseTire down to gameplay and presentation
889e828 HEAD@{3}: commit: Add a couple new interfaces
b82965a HEAD@{4}: commit: Move car to the gameplay folder
55360ae HEAD@{5}: commit: Fix a bug when displaying polygon collision shapes
decd93c HEAD@{6}: checkout: moving from 7f06e8fb6bc81566215173b9739b26758a69a82e to master
7f06e8f HEAD@{7}: checkout: moving from df922e5c2efcef3e6fc9566747efe9c79eae23b6 to df922e5c2efcef3e6fc9566747efe9c79eae23b6
df922e5 HEAD@{8}: checkout: moving from master to df922e5c2efcef3e6fc9566747efe9c79eae23b6
如您所见,有一些结帐(我正在做的git bisect
的一部分)和一些提交,甚至是commit (amend)
。这些都是对repo的git历史采取的行动。
以此作为指导我可以git reset --hard HEAD@{2}
例如让我的回购达到我git commit --amend
之前的状态(reflog中的第二行)。