什么原因会导致git无法找到git仓库,即使.git文件夹在那里,HEAD内容是正确的?

3zwjbxry  于 2023-11-15  发布在  Git
关注(0)|答案(2)|浏览(193)

由于同步问题,我丢失了一些文件。我检查git status,它说:

fatal: not a git repository (or any of the parent directories): .git

字符串
但是.git文件夹似乎仍然很好:

ls .git

    Directory: D:\QC supplements\Vaults\E Mạng lưới người thân, bạn bè của người có niềm tin tiêu cực\Liên minh Cueball\.git

Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d----           26-Oct-23  3:35 PM                hooks
d----           26-Oct-23  3:35 PM                info
d----           26-Oct-23  3:35 PM                logs
d----           26-Oct-23  2:54 PM                objects
-a---           23-Mar-23  3:22 PM             13 COMMIT_EDITMSG
-a---           14-Apr-23  9:58 PM            261 config
-a---           23-Mar-23  3:19 PM             73 description
-a---           20-Apr-23  3:08 PM              0 FETCH_HEAD
-a---           23-Mar-23  3:19 PM             21 HEAD
-a---           14-May-23 12:19 PM        1925415 index
-a---           23-Mar-23  3:22 PM            103 packed-refs


我知道.git目录中可能会发生一些损坏,但根据this answer,辅助检查是HEAD的内容。但它也没有损坏:

ref: refs/heads/main


那么还有什么原因让它找不到回购呢?或者说,什么是三级检查?

8nuwlpux

8nuwlpux1#

缺少refs目录,但这是必需的。
编辑:最小的is-it-a-repo smoketest几乎是惊人的简单:
1.带有提交ID或分支引用(如ref: refs/heads/itsabranch)的HEAD文件

  1. refs/目录
    1.一个objects/目录 * 或 * 一个GIT_OBJECT_DIRECTORY env指向其他地方。
    这就足够做一个可用的仓库了。
qyuhtwio

qyuhtwio2#

有时,当您从不同的存储库复制.git目录时,会引发此错误

git init .

字符串
尝试使用上面的命令在所需的文件夹中初始化一个新的git存储库,并尝试git status

相关问题