在github存储库中,我们可以git push
git pull
操作,同时,我们可以通过Web UI提交到存储库。似乎github存储库同时作为裸存储库和工作存储库工作?
但是,在git bare repository中,我们无法将目录提交到存储库。
所以,我的问题是
github存储库和git裸存储库之间有什么区别?
答案 0 :(得分:15)
似乎GitHub存储库可以同时作为工作存储库和裸存储库工作,这是否意味着GitHub存储库是从git裸存储库开发的
不,Git Repos在GitHub上是裸的,就像你要推送的任何远程仓库一样。
他们的网络界面向您展示了git repo内容的表示,他们可能是一个临时工作树,可以直接从Web UI修改文件(对于他们inline edit介绍的initially in 2011),但它是他们自己的内部机制 从客户的角度来看,您可以将其视为经典的裸仓。
答案 1 :(得分:3)
GitHub是一个“社交网站”,允许用户在那里托管他们的源代码。它为您提供了多种编辑源代码的方法:
git push
svn commit
根据您的观点,您可以在此处进行各种猜测:
git
命令进行推拉,看起来你可能正在与另一端的裸git仓库交谈 GitHub提供了许多额外的魔力来隐藏你的内部细节。我猜有核心的git repos。 Web界面可以使用原始裸存储库的非裸克隆,也可以使用文件的工作树,并使用git命令:GIT_DIR=/path/to/bare.git git somecommand
。实际上,它可能要复杂得多。
从技术上讲,他们甚至不需要在下面使用Git存储库。在核心,他们可能正在使用SomeSystemXYZ,它实现了所有必要的协议,以提供您正在使用Git或Subversion存储库的外观。通过查看源代码,您只能知道网站的真实工作方式。
答案 2 :(得分:0)
此引用取自; Version Control with Git
裸露和开发存储库
Git存储库是裸或者 开发(nonbare)存储库。 使用开发存储库 正常,日常发展。它保持了当前的概念 分支并提供当前分支的签出副本 工作目录。书中提到的所有存储库都是如此 远远一直是开发资源库。相比之下,一个裸存储库 没有工作目录,不应该用于正常开发。 裸存储库也没有签出分支的概念。认为 裸存储库只是.git目录的内容。在 换句话说,你不应该在裸存储库中提交。裸露 存储库似乎没什么用处,但它的作用至关重要:到 作为协作发展的权威焦点。 其他开发人员从裸存储库克隆和获取并推送 更新它。我们将在本章后面的示例中进行操作 这显示了所有这些如何一起工作。 如果你发布git clone 在--bare选项中,Git创建了一个裸存储库;否则,a 开发存储库已创建。