GIT本地存储库

时间:2017-12-31 10:08:51

标签: git

我正在试图找出什么是“本地存储库”与我正在处理的本地文件,在文件系统中看到的(在其他源控件工具中称为“工作区”)。 有关进一步说明: 假设我的本地代码位于:c:\ users \ A \ documents \ GitHub \。更改其中一个文件后,我可以将更改提交到我的“本地存储库”中的主分支(当前是主服务器) - “本地存储库”实际位于何处?

4 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:1)

您可以在"Discussion" section of the git man page

中了解更多详情
  

Git项目通常包含一个工作目录,顶层有一个“.git”子目录。

(Windows中的隐藏文件夹:在dir /AH中执行c:\users\A\ documents\GitHub查看)

  

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

     

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

您可以使用--git-dir选项或GIT_DIR环境变量更改(本地存储库的)默认位置。
我有recently proposed that in a Go development environment

答案 2 :(得分:0)

本地存储库位于您的计算机中。当git推送您的更改时,您的计算机上的本地更改将在Gothic中的远程存储库中更新。

答案 3 :(得分:0)

如上面Roland Smith所述,本地存储库数据存储在存储库文件夹中的.git文件夹中(在本例中为 GitHub )。

为了进一步了解,请检查该文件夹的内容。

$ 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中的对象的前两个字母sha1 hash是目录名。

我不会介绍如何生成这些目标文件。那里有一个good guide from GIT

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