完全取消变基

问题描述 投票:247回答:4

我执行了这样的变基:

git rebase --onto master new_background_processing export_background_processing

没有达到我想要的目的,所以我进行了重置:

git reset --hard HEAD@{1}

我的分支恢复到原来的状态,但是当我输入git status时收到此消息:

# You are currently rebasing branch 'export_background_processing' on 'e378641'.

如何完全取消该变基?不知道那意味着什么。

git
4个回答
393
投票
使用git rebase --abort。从official Linux kernel documentation for git rebase

git rebase


82
投票
[如果您以前没有适当地放弃基准,现在(Git 2.12,2017年第一季度)您有git rebase --continue | --skip | --abort | --edit-todo

[见git rebase --quitcommit 9512177(2016年11月12日)。

((由Nguyễn Thái Ngọc Duy (pclouds)pclouds中合并,2016年12月19日)>

[Junio C Hamano -- gitster --:将gitster添加到清理基准,保持所有其他内容不变

[在某些情况下,您决定中止进行中的基准测试,继续做其他事情,但是您

忘记做“ commit 06cd5a1”首先。 或者重新定位已经进行了很长时间,您忘记了在您意识到这一点之前(例如通过启动另一个变基)现在要追溯您的步骤已经为时已晚。解决方法通常是rebase

并继续您的生活。但是--quit可能有两个不同的目录(显然,它需要一些有关rebase工作原理的知识),如果您不在top-dir或链接的工作树中,则[git rebase --abort]部分可能会更长。 。在rm -r .git/<some rebase dir>
中执行“ <some rebase dir>”非常危险,那里的错误可能会破坏对象数据库或其他重要数据。

为此用例提供“ .git”,模仿一个先例那是“ rm -r”。


在Git 2.27之前(2020年第二季度),由“ .git”创建的用于保持初始脏状态的存储条目在“ git rebase --quit”上被错误地丢弃,已更正。

请参阅git cherry-pick --quitgit rebase --autosquash(2020年4月28日)。

git rebase --quitcommit 9b2df3e合并,2020年4月29日)>

[Denton Liu (Denton-L):将自动存储条目保存到Denton-LJunio C Hamano -- gitster --

签名人:刘登东

gitster中(“ commit 3afdeef:示教--autostash选项”,2020-04-07,Git v2.27.0-rebase中列出的rebase),stash reflog选项是为[ C0]。

(请参阅“ --quit”)]

[值得注意的是,当a03b55530a在存在自动存储条目的情况下运行时,它将保存到存储引用日志中。

这与merge的当前行为形成对比,在当前行为中,自动隐藏项只是被丢弃了。

[在merge中采用batch #5的行为,并将自动存储条目保存到存储引用日志中,而不只是删除它。

[很幸运,您没有完成变基,因此您仍然可以执行--autostash。如果您完成了重新设置(它

rewrites history

),事情将会更加复杂。在执行潜在的破坏性操作(尤其是历史记录重写)之前,请考虑对分支的提示进行标记,这样,如果出现问题,可以倒带。
如果您是要

取消]的“正在重新设置基准”

“已开始​​重新设置基准”]
,只需注释git merge基准编辑器中列出的所有提交。因此,您将收到命令行消息

Can “git pull” automatically stash and pop pending changes?


11
投票
[很幸运,您没有完成变基,因此您仍然可以执行--autostash。如果您完成了重新设置(它

rewrites history


8
投票
如果您是要

取消]的“正在重新设置基准”

© www.soinside.com 2019 - 2024. All rights reserved.