0

我的 git repo 遇到了麻烦。我有一堆我意识到丢失的分支,我得出了这个结论。我的文件结构看起来像这样

REPO-A  
  -/hooks  
  -/info  
  -/objects  
  -/ref  
  -config  
  -description  
  -HEAD  
  -packed-ref  
  -/.git  
    --/hooks  
    --/info  
    --/log  
    --/objects  
    --/ref  
    --COMMITMESSAGE  
    --config  
    --description  
    --FETCH_HEAD  
    --HEAD

当我克隆我的仓库时,我只看到我拥有的一些分支,而且我只有一个子模块。但是,如果我删除 /.git 文件及其下包含的所有内容,我会恢复所有分支,但当 /.git 文件已过期时,我会看到那些分支。我想知道发生了什么以及如何撤消它?我已经搜索了所有推送到 repo 的人的所有 reflog,但它们似乎都是推送的,所以我有点迷茫。任何帮助,将不胜感激!

4

1 回答 1

1

git命令将通过以下方式确定 git repo 的位置:

  • 它会.git/.,
  • 如果不存在,它将上升一级,并寻找.git/
  • 如果不存在,它将上升一级,...

所以 :

  • 删除.git/目录意味着删除存储库部分,并且只保留磁盘上的文件原样,
  • 如果在您运行某些git命令时出现某些内容,则表明.git/某个父目录中有一个目录。

您可以运行git rev-parse --show-toplevel以查看git选择作为您的存储库的基本目录的内容。


如果要更新该存储库中的分支请使用git fetchand git pull

于 2020-06-02T16:02:15.510 回答