Git在哪里存储文件?

时间:2010-06-21 06:06:48

标签: git

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

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

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

11 个答案:

答案 0 :(得分:90)

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

答案 1 :(得分:28)

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

  • 工作树(其根目录是您git init的所在地)
  • Git存储库的路径”(其中有 .git ,它将存储所有文件的修订版)

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

如果没有定义,“git存储库的路径”默认位于工作树的根目录(同样,您创建git init的位置)。< / p>

如果指定了工作树路径和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年第二季度)正在开始通过重构内部全局数据结构来改进Git存储对象的过程 打开多个存储库,使用然后关闭它们。

commit 4a7c05fcommit 1fea63eJonathan Nieder (artagnon)(2018年3月23日) 请参阅commit bd27f50commit ec7283ecommit d2607facommit a68377bcommit e977fc7commit e35454fcommit 332295dcommit 2ba0bfd,{ {3}},commit fbe33e2commit cf78ae4commit 13068bfcommit 77f012ecommit 0b20903commit 93d8d1ecommit ca5e6d2,{{3 } {},commit cfc62fc(2018年3月23日)commit 13313fc (由commit 9a00580合并于Stefan Beller (stefanbeller),2018年4月11日)

  

repository:介绍原始对象存储字段

     

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

     

这个补丁引入了原始对象存储并用它填充它   objectdir,曾经是存储库结构的一部分。

     

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

     

在稍后的步骤中,我们将引入struct object_parser   补充存储库结构中的对象解析:

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

         

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

  •   

答案 2 :(得分:17)

如果您使用的是英文Windows计算机,Git的默认存储路径将为C:\Documents and Settings\< current_user>\,因为在Windows上,默认的Git本地设置位于C:\Documents and Settings\< current_user>\.git,因此Git会为每个repo/clone创建一个单独的文件夹1}}在C:\Documents and Settings\< current_user>\,并且有克隆项目的所有目录。

例如,如果您使用

安装Symfony 2
git clone git://github.com/symfony/symfony.git

Symfony目录和文件位于

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

答案 3 :(得分:8)

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

答案 4 :(得分:4)

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

答案 5 :(得分:3)

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

答案 6 :(得分:3)

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

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

答案 7 :(得分:0)

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

$ git init projectName

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

答案 8 :(得分:0)

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

-我使用的是Windows。

例如

using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using Microsoft.AspNetCore.Authorization;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using Microsoft.EntityFrameworkCore;
using TenantToolVmApi.Models;

namespace TenantToolVmApi.Controllers
{
    [Authorize]
    [ApiController]
    [Route("[controller]")]
    public class MarketsController : ControllerBase
    {
        private readonly MarketContext _context;

        public MarketsController(MarketContext context)
        {
            _context = context;
        }

        // GET: api/Markets
        [HttpGet]
        public async Task<ActionResult<IEnumerable<Market>>> GetMarketsItems()
        {
            string userName = HttpContext.User.Identity.Name;
            PermissionController permissionController = new PermissionController(userName);
            if (permissionController.HasNationalScope())
                return await _context.Markets.ToListAsync();
            else
            {
                int brancheID = permissionController.GetAccessibleBranches();

                IEnumerable<Market> marketsHasNoChildren = new List<Market>();
                List<int> addedIds = new List<int>();
                IEnumerable<Market> marketsUnknownChildren;
                IEnumerable<Market> marketsToCheckOnNextPass;
                IEnumerable<Market> result;


                marketsUnknownChildren = await _context.Markets.Where(x => x.BranchID.Equals(brancheID)).ToListAsync();

                while (marketsUnknownChildren.Count() > 0)
                {
                    marketsToCheckOnNextPass = new List<Market>();
                    foreach (Market market in marketsUnknownChildren)
                    {
                        result = await _context.Markets.Where(x => x.ParentId.Equals(market.ID)).ToListAsync();
                        if (result.Count() > 0)
                            marketsToCheckOnNextPass = marketsToCheckOnNextPass.Concat(result);
                        else if (!addedIds.Contains(market.ID))
                        {
                            marketsHasNoChildren = marketsHasNoChildren.Concat(new List<Market> { market });
                            addedIds.Add(market.ID);
                        }
                    }
                    marketsUnknownChildren = marketsToCheckOnNextPass;
                }

                ActionResult<IEnumerable<Market>> returnActionResults = marketsHasNoChildren.ToList();
                return returnActionResults;
            }
        }

        private bool MarketsExists(int id)
        {
            return _context.Markets.Any(e => e.ID == id);
        }
    }
}

将创建一个文件夹

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

答案 9 :(得分:0)

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

答案 10 :(得分:-5)

通常会转到Windows中的Documents文件夹:C:\ Users \&lt;&#34;用户帐户的名称&#34;&gt; \ Documents \ GitHub