我可以用它的备份替换Git回购吗?

我可以用它的备份替换Git回购吗?,git,windows-7-x64,Git,Windows 7 X64,如果我复制了Git版本控制下的MyDirectory(带有.Git子文件夹),然后进行提交,那么这一切是否都“表现”为它自己的小repo,有版本历史记录等等 然后我可以用这个副本替换以前的MyDirectory,然后继续工作吗 背景: 我的Git回购协议被搞砸了。我希望我可以用前一天的整个目录的备份来替换它,然后从那里继续。是的,你可以这样做,而且不会引起任何问题 Git需要跟踪您的版本历史记录的所有内容都位于.Git文件夹中。因此,将该文件夹替换为该文件夹的旧版本将使您的回购回滚到该旧状态。与

如果我复制了Git版本控制下的
MyDirectory
(带有
.Git
子文件夹),然后进行提交,那么这一切是否都“表现”为它自己的小repo,有版本历史记录等等

然后我可以用这个副本替换以前的
MyDirectory
,然后继续工作吗

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

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

Git需要跟踪您的版本历史记录的所有内容都位于
.Git
文件夹中。因此,将该文件夹替换为该文件夹的旧版本将使您的回购回滚到该旧状态。与使用
Git checkout
Git revert
执行Git回滚不同,您还将丢失自那时起添加到回购中的所有历史记录

为了安全起见,您应该在恢复备份之前删除文件夹的现有版本。(事实上,由于Git对象是不可变的,我不确定是否有必要这样做。但这应该不会有什么坏处。)如果您不想冒丢失现有版本文件夹中数据的风险,也可以移动或重命名它,然后恢复备份


根据您所说的“全部损坏”的含义,可能仍然可以在不从备份中恢复的情况下进行恢复(特别是如果您没有运行任何“危险”命令,例如任何带有
--force
的命令)。如果您需要帮助,请随时联系我们

是的,你可以这样做,而且不会造成任何问题

Git需要跟踪您的版本历史记录的所有内容都位于
.Git
文件夹中。因此,将该文件夹替换为该文件夹的旧版本将使您的回购回滚到该旧状态。与使用
Git checkout
Git revert
执行Git回滚不同,您还将丢失自那时起添加到回购中的所有历史记录

为了安全起见,您应该在恢复备份之前删除文件夹的现有版本。(事实上,由于Git对象是不可变的,我不确定是否有必要这样做。但这应该不会有什么坏处。)如果您不想冒丢失现有版本文件夹中数据的风险,也可以移动或重命名它,然后恢复备份


根据您所说的“全部损坏”的含义,可能仍然可以在不从备份中恢复的情况下进行恢复(特别是如果您没有运行任何“危险”命令,例如任何带有
--force
的命令)。如果您需要帮助,请随时联系我们

为什么不“git签出”昨天的版本?无论如何,你需要在用备份替换之前完全删除它为什么不“git签出”昨天的版本?无论如何,你需要在用备份替换之前完全删除它