首页 > 解决方案 > 如何在不更改项目文件夹中的任何文件的情况下恢复 .git?

问题描述

我们的一位开发人员刚刚从 github 以 zip 格式下载了我们的存储库(没有.git目录)。他对其进行了许多更改,并希望将其上传回来。

我想通过恢复.git文件夹来解决这种情况,但我不知道如何正确地做到这一点。我大多只是调用 git push、pull、commit,没有什么高级的。

我可以将存储库克隆到一个单独的目录中,然后将.git文件夹从那里复制到工作目录,但这对我来说似乎是错误的方式。

标签: gitgithub

解决方案


该程序相当简单,但由于您或某人必须完成您的同事跳过的所有步骤,因此您或他并没有通过这样做来节省时间。

所以我的第一条建议是:教你的同事如何正确使用 git。

现在,这是挽救局势的方法

  1. 获取存储库的克隆。

    您可以使用现有的,但您需要自由检出分支等,如有必要,请重新克隆)

  2. 如有必要,请查看您的同事下载的提交。

    这对于确保他/她的更改不会删除其他人所做的更改非常重要。这可能很难知道,这也是您的同事绝对应该知道如何使用 git 以避免将来出现这种混乱的原因之一。我说“如果有必要”,因为下载后存储库中可能没有新的提交,但如果有,您必须检查正确的提交。

  3. 在此提交处创建并签出一个新分支。

    我们将使用 zip 文件中的文件进行新的提交,如果您可以拥有一个分支并且可能还可以执行拉取请求,那么一切都会变得容易得多。

  4. 将 zip 文件应用到工作文件夹的顶部。

    重要的是不仅要使用 zip 文件中的文件覆盖工作文件夹中的文件,还要确保正确应用任何重命名、移动、删除。如有必要,请使用目录比较工具确保应用所有更改。

    “专业提示”:如果您的同事能准确记住修改了哪些文件,则此步骤会变得容易得多。

    快速修复:如果 zip 文件完整,那么您可以简单地删除工作文件夹中的所有文件,然后将 zip 文件解压缩到其中。如果“旧”文件和“新”文件没有改变,Git 不会知道它们之间的区别。

  5. 添加并提交更改。
  6. 根据您的规则和流程,将分支合并为“whatever”。

    设置拉取请求并要求您的同事验证所有更改是否已正确应用可能是一个好主意。


推荐阅读