如何生成.git*文件*以及它是如何构造的?
这不是关于隐藏的如何生成.git*文件*以及它是如何构造的?,git,github,Git,Github,这不是关于隐藏的.git文件夹的问题 我的理解 我的大部分Git工作通常使用GitHub。使用远程服务器时,我可能会将推送和获取配置为: $git remote -v origin git@github.com:<my_org>/<my_repo>.git (fetch) origin git@github.com:<my_org>/<my_repo>.git (push) $git remote-v 起源git@github.com:/.g
.git
文件夹的问题
我的理解
我的大部分Git工作通常使用GitHub。使用远程服务器时,我可能会将推送和获取配置为:
$git remote -v
origin git@github.com:<my_org>/<my_repo>.git (fetch)
origin git@github.com:<my_org>/<my_repo>.git (push)
$git remote-v
起源git@github.com:/.git(获取)
起源git@github.com:/.git(推送)
这里的问题是关于/.git
文件的
我知道它“包含”了存储库所需的所有机制:文件、索引、钩子、引用等。我一直在“想象”它是一个层次化的zip文件,本质上就是整个存储库,如果我将其全部压缩,它将在本地显示
我的问题
.git
文件是否只是存储库的一个zip文件?我如何生成它git init
和git push
或者每次我git clone
时,git都做些什么来构造/解构它?(这真的只是一个拉链和解扣?)- 我可以使用相同的
命令或类似的东西来创建gitinit-g
文件吗.git
.git
文件的文档在哪里(除了上面的链接)?
- 我确实搜索了一会儿,但是
上的所有内容都显示了隐藏的目录,而不是文件“.git”
.git
文件,那么其他人可以将我的机器用作远程存储库吗?
- 换句话说,我将如何创建一台机器和一个文件/文件夹结构,以便像其他人的远程存储库一样工作
否:
repo.git
它是一个表示裸存储库的文件夹(没有工作树,只有repo文件)
压缩/解压缩只发生在,然后在克隆/拉/推期间传输
如果您只想构建一个“zip”文件,请参阅,它将生成一个完整的Git repo作为一个文件。您的问题似乎很广泛,但如果您只想将存储库复制到一个新位置,则只需复制
.Git
文件夹,仅此而已..Git是一个目录。默认情况下,它是裸git存储库的名称gitinit--bare.git
正如@ElpieKay所说,它不是一个文件,而是一个目录。裸存储库foo.git
的内容与非裸存储库foo
中.git
的内容匹配,除了config
文件将core.bare
设置为true
。(但是从现有的非裸克隆设置它的最好方法是git clone--bare
,也许还可以设置core.shared
)要将它用作服务器,您的机器必须允许某种访问,无论是ssh、http,还是通过git://
协议,或者其他什么,我应该说core.sharedepository
(我已经很久没有设置Git服务器了)。感谢大家提供的信息,但我认为你们误解了我的观点。在某种程度上,.git
是一个文件,而不是一个目录。我在下面问题和VonC答案中的链接可能会帮助您更好地理解。(当然,还有很多我不明白的地方,因此我提出了我的问题。但我确实明白,这在某种程度上也是一个类似存档的文件,而不仅仅是一个目录结构。)关于裸机回购:,