gpt4 book ai didi

git - 在 git interactive rebase 期间添加了新文件,中止了 rebase,新文件丢失

转载 作者:太空狗 更新时间:2023-10-29 13:23:44 27 4
gpt4 key购买 nike

我之前在几个节点上提交了 git rebase -i。我添加了一些我打算添加到该提交中的新文件。

看起来我在错误的节点上,所以我立即执行了 git rebase --abort。那些新文件现在完全消失了。在 reflogs 中,看起来像是发出了删除命令(删除文件模式 100644),但连文件名都不存在。

这看起来不太好,但我想我会问 - 这是可以恢复的吗?

最佳答案

不,这些更改不是“可恢复的”,因为它们可以通过单个命令获取。是的,这些更改是在 git fsck 中发现的,还有 100 多个我必须整理的其他旧更改。恶心,但总比完全失败好。

需要注意的重要事项: - 一旦你做了一个“git add”,那个提交节点就会被记录下来——从那时起,事情就不会完全丢失了 - “git rebase abort”不像回滚事务,它更像是一个“git reset --hard”,它将删除在该 rebase 期间添加的任何新文件。 Git 不会跟踪您在 rebase 期间所做的更改,因此它无法“撤消”它们或将它们回滚。在 rebase 期间,您处于无人区,中止 rebase 是 git 重置回以前的提交节点。

为了重新总结问题 - 我做了一些更改,并将它们组织到单独的提交中,每个提交 1 个功能。进行到一半时,我意识到我在较早的(未推送的)提交中遗漏了一些文件。我做了一个 git stash,开始了一个交互式 rebase,做了一个 git stash pop,将丢失的文件添加到以前的提交中,然后意识到我已经将新文件添加到了错误的提交节点。然后,我做了一个 git rebase --abort,它删除了那些新文件,而且通常很糟糕。

TLDR:在交互式 rebase 过程中不要在没有先备份的情况下添加新文件 - 如果您中止 rebase ,您的文件将(大部分)丢失,并且不容易恢复。

关于git - 在 git interactive rebase 期间添加了新文件,中止了 rebase,新文件丢失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7800874/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com