如何生成.git * FILE *以及如何(de)构造?

时间:2017-03-06 01:28:19

标签: git github

不是关于隐藏的.git文件夹 的问题!!

我的理解

我通常使用GitHub来完成我的大多数Git工作。使用远程服务器时,我可能会按照以下方式配置push和fetch:

$git remote -v
origin  git@github.com:<my_org>/<my_repo>.git (fetch)
origin  git@github.com:<my_org>/<my_repo>.git (push)

此处的问题具体针对 <my_org>/<my_repo>.git 文件。

我知道它“包含”了存储库所需的所有机器:文件,索引,钩子,引用等。我一直在“想象”它是一个分层的zip文件,基本上就是整个如果我要将它全部压缩,它将在本地查找。

我的问题

  1. 我的理解是否正确? <blah>.git 文件 只是存储库的压缩文件吗?我该如何生成它?
  2. 每次我git initgit push或每次git clone时,git为构建/解构它做了什么? (这真的只是拉链和拉链吗?)
  3. 有没有办法创建这个结构?例如,this GitHub是如何做到的(或多或少)?
    • 我可以使用相同的git init -g命令或类似命令来创建.git文件。
  4. <blah>.git文件的文档在哪里(超出上面的链接)?
    • 我搜索了一会儿,但是".git"上的所有内容都会显示隐藏目录,而不是文件。
  5. 如果我在我的机器上创建了这个<blah>.git文件,那么其他人可以将我的机器用作远程存储库吗?
    • 换句话说,我如何创建一个机器和文件/文件夹结构,以便像其他人一样充当远程存储库?

1 个答案:

答案 0 :(得分:2)

否:repo.git它是一个代表裸存储库的文件夹(没有工作树,只有repo文件)

压缩/解压缩只发生在delta encoding of the pack files,然后在克隆/拉/推期间传输。

如果您只想构建一个“zip”文件,请参阅git bundle,它会生成一个完整的Git存储库作为一个文件。