代码之家  ›  专栏  ›  技术社区  ›  Yuval Karmi

Git在哪里存储文件?

git
  •  67
  • Yuval Karmi  · 技术社区  · 16 年前

    我只是在我的 Ruby on Rails 项目:

    git init
    git add .
    git commit -a -m 'Initial'
    

    在哪里 Git 实际存储这个存储库?(它在我的本地机器上,但在哪里?)

    8 回复  |  直到 8 年前
        1
  •  87
  •   Matthew Flaschen    16 年前

    它将在 .git 当前目录中的文件夹。

        2
  •  28
  •   VonC    8 年前

    为了更完整一点,Git使用:

    • 这个 工作树 (它的根就是你 git init )
    • “ Git存储库的路径 “(如果有 .git ,它将存储所有文件的修订)

    GIT_DIR 是一个环境变量,可以是当前工作目录的绝对路径或相对路径。

    如果没有定义, 默认情况下,“git存储库路径”位于工作树的根目录下。 (再一次,你在那里 初始化 )

    如果指定工作树路径和Git存储库路径,则可以从磁盘的任何位置执行任何Git命令:

    git command --git-dir=<path> --work-tree=<path>
    

    但是,如果在Git存储库的某个子目录中执行它们(没有指定Git-Dir或工作树路径),Git只需查找当前和父目录,直到找到 Git ,假定它也是工作树的根目录,并使用它 Git 作为文件所有修订的唯一容器。

    注: Git 也隐藏在Windows(msysgit)中。
    你得做一个 dir /AH 看到它。
    git 2.9 (June 2016) allows to configure that .


    请注意,Git2.18(2018年第2季度)正在启动一个过程,通过重构内部的全局数据结构使其成为可能,来发展Git存储对象的方式。 要打开多个存储库,请使用它们,然后关闭它们。

    见 commit 4a7c05f , commit 1fea63e (2018年3月23日) Jonathan Nieder ( artagnon ) .
    见 commit bd27f50 , commit ec7283e , commit d2607fa , commit a68377b , commit e977fc7 , commit e35454f , commit 332295d , commit 2ba0bfd , commit fbe33e2 , commit cf78ae4 , commit 13068bf , commit 77f012e , commit 0b20903 , commit 93d8d1e , commit ca5e6d2 , commit cfc62fc , commit 13313fc , commit 9a00580 (2018年3月23日) Stefan Beller ( stefanbeller ) .
    (合并) Junio C Hamano -- gitster -- 在里面 commit cf0b179 11 APR 2018

    repository :引入原始对象存储字段

    “原始对象存储”字段将包含访问所需的任何对象。 到给定存储库中的对象。

    此修补程序引入原始对象存储并用 objectdir ,它曾经是知识库结构的一部分。

    当结构获得成员时,我们还将填充要清除的函数 这些成员的记忆。

    在后面的步骤中,我们将介绍 struct object_parser ,那将 补充存储库结构中的对象解析:

    • 原始对象解析器是提供对原始对象内容的访问的层,
    • 而更高级的对象解析器代码将解析原始对象和 使用' struct object '.

      现在只将较低级别添加到存储库结构中。

        3
  •  17
  •   Peter Mortensen Pieter Jan Bonestroo    13 年前

    如果您在一台英语Windows计算机上,git的默认存储路径将是 C:\Documents and Settings\< current_user>\ ,因为在Windows上,默认的Git本地设置位于 C:\Documents and Settings\< current_user>\.git 因此Git为每个 repo/clone 在 C:\文档和设置\<当前用户\ 还有克隆项目的所有目录。

    例如,如果安装 Symfony 2与

    git clone git://github.com/symfony/symfony.git
    

    symfony目录和文件将位于

    C:\Documents and Settings\< current_user>\symfony\
    
        4
  •  8
  •   Brenton Alker    16 年前

    在项目的根目录中有一个隐藏的 .git 包含配置、存储库等的目录。

        5
  •  4
  •   wjandrea sebs    9 年前

    我在Windows上,右键单击“开始”菜单中的GitBash程序并选择“属性”,找到了我的位置。快捷方式选项卡显示“开始于:”值。对我来说,是 %HOMEDRIVE%%HOMEPATH% ,所以我打开了一个命令提示并键入 echo %HOMEDRIVE%%HOMEPATH% 以查看实际位置。

        6
  •  3
  •   Peter Tillemans    16 年前

    在项目根目录的.git目录中。与其他一些版本控制系统(尤其是cvs)不同,任何子目录中都没有其他目录。

        7
  •  3
  •   bouvierr Danilo J. Bonsignore    12 年前

    我也找不到我的Git存储库。我正在使用Windows 8并在下创建了我的存储库(错误)。 C:\Program Files (x86)\Git . 我可以在bash中看到repository文件夹,但不能在cmd或windows资源管理器中看到。

    然后我想起了Windows的“虚拟商店”功能。我的存储库文件夹实际上是在 C:\Users\<username>\AppData\Local\VirtualStore\Program Files (x86)\Git\<myrepo> 里面有我的 .git 文件夹!

        8
  •  -5
  •   Shabbar    12 年前

    通常它会转到Windows中的文档文件夹:c:\users\<“用户名”>\documents\github