我可以用它的备份来替换Git的repo吗?



如果我在Git版本控制下复制MyDirectory(带有.git子文件夹),然后进行提交,这一切是否都"表现"为它自己的小repo,具有版本历史等?

我可以用这个副本替换以前的MyDirectory并继续工作吗?

背景:我的Git仓库都搞砸了。我希望我可以用前一天的整个目录的备份来替换它,然后从那里继续。

是的,你可以这样做,而且应该不会引起任何问题。

Git需要记录版本历史的所有东西都在.git文件夹中。因此,用该文件夹的旧版本替换该文件夹将使您的repo回滚到旧状态。使用git checkoutgit revert进行Git回滚不同,还将丢失自那时以来添加到repo的所有历史记录

为了安全起见,正如@Danh建议的那样,您应该在恢复备份之前删除文件夹的现有版本。(实际上,由于Git对象是不可变的,我不确定这是否必要。不过应该不会有什么伤害。)如果不想冒丢失现有版本文件夹数据的风险,还可以移动或重命名文件夹,然后恢复备份。

根据您所说的"所有问题"的含义,仍然有可能在没有从备份恢复的情况下恢复(特别是如果您没有运行任何"危险"命令,例如--force)。如果您需要帮助,请随意搜索或询问这里!

最新更新