【问题标题】:Where does Git store files?Git 在哪里存储文件?
【发布时间】:2011-03-06 04:14:37
【问题描述】:

我刚刚在我的 Ruby on Rails 项目上运行了以下命令:

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

Git 实际存储此存储库的位置在哪里? (它在我的本地机器上,但是在哪里?)

【问题讨论】:

  • 顺便说一句,git commit -a -m 'initial' 和 git commit -am 'initial' 一样

标签: git


【解决方案1】:

它将在当前目录的.git 文件夹中创建您的存储库。

【讨论】:

  • 您好,我也有同样的问题。在 git 完成克隆之前我的磁盘空间不足,现在我不知道在哪里删除旧的克隆。运行 GIT 时我在 ~ 目录中,但 ~ 或 / 中没有 .git 文件夹。我该怎么办?谢谢你。
  • 我不知道为什么没有.git目录。你在~的时候试过ls -ld .git吗?
  • 您好,谢谢您的回答。我还没有找到克隆,但是第二个 git 成功了,.git 文件夹存储在~/common/.git 中(common 是包的名称)。我认为 GIT 将未完成的作业存储在一个临时文件夹中,并在成功后转移回当前目录。我只是希望它已经删除了不成功的下载。
  • 顺便提一下,它是一个隐藏目录,以防万一有人看不到。
  • @B.K.指出这一点,影响Windows,文件夹被隐藏。让每个人都知道他们如何看到它(Windows 7):F10 -> 工具 -> 文件夹选项 -> 查看 -> 显示隐藏的文件和文件夹(在高级设置的单选按钮中)
【解决方案2】:

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

  • 工作树(其根是您创建git init 的位置)
  • Git 存储库的路径”(其中有一个 .git,它将存储您所有文件的修订版)

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

如果未定义,“git 存储库的路径”默认位于工作树的根目录(同样,您在其中创建了 git init)。

只要指定工作树路径和 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


请注意,Git 2.18(2018 年第 2 季度)开始改进 Git 存储对象的方式,通过重构内部全局数据结构使其成为可能 打开多个存储库,使用然后关闭它们。

commit 4a7c05fcommit 1fea63e(2018 年 3 月 23 日)Jonathan Nieder (artagnon)
commit bd27f50commit ec7283ecommit d2607facommit a68377bcommit e977fc7commit e35454fcommit 332295dcommit 2ba0bfdcommit fbe33e2commit 13068bfcommit 13068bfcommit 13068bfcommit 13068bf 987654337@、commit 93d8d1ecommit ca5e6d2commit cfc62fccommit 13313fccommit 9a00580(2018 年 3 月 23 日)Stefan Beller (stefanbeller)
(由Junio C Hamano -- gitster -- 合并,@98765443 中的Junio C Hamano -- gitster -- 2018 年 4 月)

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

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

此补丁引入了原始对象存储并使用 objectdir,曾经是存储库结构的一部分。

随着结构获得成员,我们还将填充函数以清除 这些成员的记忆。

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

  • 原始对象解析器是提供对原始对象内容的访问的层,
  • 而更高级别的对象解析器代码将解析原始对象和 使用“struct object”跟踪父母身份和其他对象关系。

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

【讨论】:

  • 当然,但是您的代码文件的版本在哪里?如果我交换分支,git 如何获取该分支信息?似乎是更完整的答案(也许比 OP 更准确地回答“git 在哪里存储 changes”?)herehere。不过,不确定这是否值得编辑。
  • @ruffin:很好的链接,但正如您所注意到的,不是 完全 OP 的问题。
【解决方案3】:

如果您使用的是英文 Windows 机器,Git 的默认存储路径将为 C:\Documents and Settings\&lt; current_user&gt;\,因为在 Windows 上,默认 Git 本地设置位于 C:\Documents and Settings\&lt; current_user&gt;\.git,因此 Git 为每个 repo/clone 创建一个单独的文件夹 @987654325 @ 和克隆项目的所有目录。

例如,如果您安装Symfony 2 与

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

Symfony 目录和文件将在

C:\Documents and Settings\< current_user>\symfony\

【讨论】:

  • 你说的是git bash的HOME目录。如果您更改目录,克隆的存储库当然会在您调用git clone 的目录中创建。真正回答这个问题的是 git 将文件存储在存储库内名为 .git 的文件夹中,无论您选择克隆它的任何位置。
  • Windows 8.1 : C:\Users\user_name\.project_name 或从Run ...\.project_name 致电。
【解决方案4】:

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

【讨论】:

  • 隐藏目录很有意义。这就是我所怀疑的,但我在终端中看不到它。显然运行ls 是不够的。您也必须运行 ls -a 才能查看隐藏文件。
  • 没错。并且 hidden 被简单地定义为“以 . 开头。”
  • 隐藏“点文件”可能只有熟悉基于 *nix 的系统的人才能看到,但是是的。
【解决方案5】:

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

【讨论】:

    【解决方案6】:

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

    【讨论】:

      【解决方案7】:

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

      然后我想起了 Windows 的“虚拟商店”功能。我的存储库文件夹实际上是在C:\Users\&lt;username&gt;\AppData\Local\VirtualStore\Program Files (x86)\Git\&lt;myrepo&gt; 下创建的,其中有我的.git 文件夹!

      【讨论】:

      • 如何让它“正确”工作并将文件夹放在您想要的位置?我有其他/类似的问题,但我认为都与虚拟商店有关。
      • 在 Windows Vista 及更高版本上,不允许非管理员用户在 Program Files 中创建文件,这是所有用户通用的。 Windows 将改为在用户的VirtualStore 文件夹中创建文件。最简单的解决方案是避免在受限文件夹中创建文件,而是在 Documents 之类的地方创建文件。
      【解决方案8】:

      如果您正在查找项目文件夹的创建位置。我在输入 git bash 时注意到了。

      $ git init 项目名称

      它会告诉我该项目的项目文件夹在哪里。

      【讨论】:

        【解决方案9】:

        对于我来说,当我运行 git clone 时,Git 会将克隆的包存储在我运行命令的目录中。

        - 我使用 Windows。

        例如

        C:\Users\user>git clone https://github.com/broosaction/aria
        

        将创建一个文件夹

         C:\Users\user\aria
        

        【讨论】:

          【解决方案10】:

          它可能已创建,但仍处于隐藏状态 显示它去你的文件资源管理器设置 转到(查看)然后选中隐藏项目的框并转到您的存储库并刷新它 和

          【讨论】:

            【解决方案11】:

            通常它会进入 Windows 中的 Documents 文件夹:C:\Users\\Documents\GitHub

            【讨论】:

            • Github 与此无关。
            • @shabbar 您正在回答问题,“GitHub Desktop for Windows 建议在哪里作为默认位置来创建新存储库”。
            猜你喜欢
            • 2016-03-14
            • 2011-07-27
            • 1970-01-01
            • 1970-01-01
            • 2017-11-09
            • 2015-10-25
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多