陷入git rebase ......如何重置

问题描述 投票:6回答:1

我是git rebase的一部分,我被卡住了。我不记得到底发生了什么,但我正在使用UI并删除了一个签出分支,事情似乎变得空白。我重新启动并设法做了一些其他的工作创建并承诺到其他分支机构等但后来我注意到一个状态说我仍然在一个rebase中间

如果我试试

git rebase --skip
git rebase --continue
git rebase --abort

每个都失败了

error: could not read '.git/rebase-merge/head-name': No such file or directory

有没有办法让我恢复稳定状态?我真的不担心变基因所涉及的是什么,所以我并没有试图回到我仍处于变革中期的地步。

编辑:

$ git status
On branch fix/SJW-01225
Your branch is up to date with 'core-v3/fix/SJW-01225'.

You are currently rebasing.
(all conflicts fixed: run "git rebase --continue")

Untracked files:
(use "git add <file>..." to include in what will be committed)

     [long list of untracked files]

nothing added to commit but untracked files present (use "git add" to track)

编辑-1:

$ touch .git/rebase-merge/head-name

$ git rebase --abort
error: could not read '.git/rebase-merge/onto': No such file or directory

$ touch .git/rebase-merge/onto

$ git rebase --abort
error: could not get 'onto': ''

谢谢

git rebase
1个回答
11
投票

为了摆脱损坏的git rebase,您可以执行以下操作

  1. 重置为已知状态。你可以找到你用rebase从哪个提交开始你的git reflog

例如,reflog将为您提供以下内容。如果你做了一个互动的rebase,rebase起点是最后一个rebase (start)rebase -i (start)。这是HEAD@{1}

$ git reflog
f10ccfed (HEAD) HEAD@{0}: rebase : fast-forward
383aa038 (origin/master, origin/HEAD) HEAD@{1}: rebase (start): checkout HEAD~10
0600cf7e (origin/Files, master, Files) HEAD@{4}: checkout: moving from master to Files
0600cf7e (origin/Files, master, Files) HEAD@{5}: commit: fixes
f10ccfed (HEAD) HEAD@{6}: commit: refactoring

所以你需要的是:

    git checkout master # assuming you were on master
    git reset --hard HEAD@{1}
  1. 删除rebase-merge文件夹
    rm -rf .git/rebase-merge
© www.soinside.com 2019 - 2024. All rights reserved.