GIT本地代码仓库

3

我正在尝试弄清楚“本地存储库”与我正在处理的本地文件(在文件系统中称为其他源控制工具中的“工作区”)之间的区别。 进一步解释: 假设我的本地代码位于:c:\ users \ A \ documents \ GitHub \。更改其中一个文件后,我可以将更改提交到“本地存储库”的主分支(当前为Master)-“本地存储库”实际上位于哪里?

4个回答

1

c:\users\A\ documents\GitHub 的代码库位于隐藏的子目录 c:\users\A\ documents\GitHub\.git 中。


1

您可以在git手册的"讨论"部分中了解更多细节:

一个Git项目通常由一个带有顶级“.git”子目录的工作目录组成。

(在Windows中是一个隐藏的文件夹:在c:\users\A\ documents\GitHub中执行dir /AH命令即可看到它)

.git目录包含了一些东西,其中包括一个表示该项目完整历史记录的压缩对象数据库、一个“索引”文件,该文件将历史记录链接到当前工作树的内容,以及指向历史记录的命名指针,例如标签和分支头。

对象数据库包含三种主要类型的对象:blob,用于保存文件数据;tree,用于指向blob和其他tree来构建目录层次结构;以及commits,每个commit都引用单个tree和一些父代commits。

你可以使用--git-dir选项或GIT_DIR环境变量更改默认位置(本地仓库的位置)。
最近在Go开发环境中提出了这个问题

0

本地存储库位于您的计算机上。当您使用git push命令推送更改时,您计算机上的本地更改将更新到远程存储库中,该存储库位于Gothic中。


0

如Roland Smith所述,本地存储库数据存储在存储库文件夹(在这种情况下是GitHub)中的.git文件夹内。

为了进一步理解,让我们检查该文件夹的内容。

$ ls -C .git
COMMIT_EDITMSG  MERGE_RR    config      hooks       info        objects     rr-cache
HEAD        ORIG_HEAD   description index       logs        refs

我不会描述文件夹中的所有项目。但是我们感兴趣的文件夹是objects文件夹。如果您检查对象文件夹的内容,

$ ls -C .git/objects
09  24  28  45  59  6a  77  80  8c  97  af  c4  e7  info
11  27  43  56  69  6b  78  84  91  9c  b5  e4  fa  pack

它包含许多以两个字符命名的文件夹。Git存储的对象的前两个字母是哈希,这些哈希作为目录名称。

我不会描述这些对象文件如何生成。GIT有一个好指南

提示:如果您想了解 .git 文件夹中的其他文件的详细信息,请查看 http://gitready.com/advanced/2009/03/23/whats-inside-your-git-directory.html


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接