代码之家  ›  专栏  ›  技术社区  ›  NebulaFox

git如何知道它在git回购中的作用

git
  •  -1
  • NebulaFox  · 技术社区  · 5 年前

    我感兴趣的是 git 事实上,我知道这是在一个吉特回购。我的第一个线索是它只是爬上文件夹结构到根目录(这可能涉及权限错误)。有记录在案吗?

    2 回复  |  直到 5 年前
        1
  •  2
  •   jthill    5 年前

    就这样。您还可以通过选项或环境变量显式地告诉它所有部分在哪里。

    完整的文档是拼凑出来的,你可以搜索 git help git 为了“发现”找到 --git-dir git 命令本身,以及稍后在 GIT_DISCOVERY_ACROSS_FILESYSTEM 环境变量的docs,用于扩展发现的范围。

        2
  •  1
  •   Schwern    5 年前

    As Edward Thomson asks ,那怎么办 bare repos

    下面是血淋淋的细节。开始于 setup_git_directory_gently_1 正在搜索Git目录。

    如果 GIT_DIR --git-dir 它用的就是这个。否则,它将从当前工作目录或给定的路径开始搜索 -C .

    1. 如果有 .git 文件 gitdir: <path> 它将使用该路径。
    2. 如果 .git/ (非裸存储库)是一个Git目录,它使用这个目录。
    3. 如果 ./ 是一个Git目录,它使用这个目录。
    4. 除非 ...
      1. 它击中了任何目标 GIT_CEILING_DIRECTORIES
      2. GIT_DISCOVERY_ACROSS_FILESYSTEM 不是真的,它已经到达了文件系统边界。

    is_git_directory .

    1. HEAD 包含语法上有效的引用。
    2. 有一个无障碍的 objects 目录,或GIT\u OBJECT\u directory设置为的任何对象。
    3. 有一个无障碍的 refs 目录。

    It is a non-bare Git directory 吉特 .

    下面是让Git相信它已经找到了一个“Git目录”的最低要求。

    $ ls -lR
    .:
    total 4
    -rw-r--r-- 1 schwern staff 27 Dec 29 14:50 HEAD
    dr-xr-xr-x 2 schwern staff 64 Dec 29 14:50 objects
    drwxr-xr-x 2 schwern staff 64 Dec 29 14:50 refs
    
    ./objects:
    total 0
    
    ./refs:
    total 0
    
    $ cat HEAD 
    ref: refs/heads/yarblockos
    

    无障碍 物体 参考文献 目录和具有语法有效引用的头文件。

    如果是在 目录,则它是一个非裸存储库。

        3
  •  0
  •   Mureinik    5 年前

    Git repo是一个带有 .git 目录。Git可以向后追索,直到遇到那个文件夹,或者不能再往回走。