如果我复制了MyDirectory
Git版本控制(带有.git
子文件夹)然后进行提交,那么这一切都“行为”,就像它自己的小回购一样,版本历史等?
我可以用此副本替换之前的MyDirectory
并继续工作吗?
背景: 我的Git回购全部被搞砸了。我希望我可以用前一天整个目录的备份替换它,然后从那里继续。
答案 0 :(得分:2)
是的,你可以做到这一点,它不应该导致任何问题。
Git需要跟踪您的版本历史记录的所有内容都位于.git
文件夹中。因此,用该文件夹的旧版本替换该文件夹会将您的repo回滚到旧版状态。 与使用git checkout
或git revert
执行Git回滚不同,您将丢失自此之后已添加到回购的所有历史记录。
为安全起见,在@Danh suggested中,您应该在还原备份之前删除该文件夹的现有版本。 (实际上,由于Git对象是不可变的,我不确定这是否必要。但它不应该受到伤害。)如果您不想冒丢失现有版本文件夹中的数据的风险,您也可以移动或重命名,然后恢复备份。
根据“所有犯规”的含义,仍然可以在不从备份恢复的情况下恢复(特别是如果您没有运行任何“危险”命令,例如--force
的任何内容) 。如果您需要帮助,请随意search around或ask here!