git:从url.git vs url/.git克隆之间的差异

  • 本文关键字:git url 之间 vs git github
  • 更新时间 :
  • 英文 :


我一直用以下URL克隆我的存储库:

https://github.com/joaquinlpereyra/twitterImgBot.git

,但我发现您也可以通过将克隆引导到.git文件夹来克隆:

$ git clone http://examplerepo.com/.git/

这在GitHub上不起作用,但是我从经验中知道,这对至少一个HTTP非GitHub Git存储库有效,而尝试执行以下操作:

$ git clone http.//examplerepo.com 

根本不起作用。

任何人都有有关此.git vs/git差异的信息?我尝试过搜索,但是我还没有看到克隆/.git文件夹,除了GIT参考的最后一个示例,它给出了以下示例:

$ git clone --bare -l /home/proj/.git /pub/scm/proj.git

但没有关于它为何克隆.git文件夹而不是/home/proj直接排除的信息。

我感谢任何信息或指令!谢谢。

git支持一些不同的协议。使用哪一个取决于几个因素,例如GIT是否在远程端(Smart vs. Dumb)上运行,或者是否可以列出目录内容(例如本地文件或FTP或WebDav vs. HTTP,在一般情况下)。

如果您只是使用普通的HTTP服务器,则只要运行Git-update-server-Info即可提供帮助(请参阅Gitrepository-layout),Git可以使用DUMB HTTP传输从中获取。您必须在URL路径中专门包含/.git/

github当然是在使用智能HTTP传输,这与.git/无关,最终是可选的。(github不支持愚蠢的http传输。)

SMART HTTP协议可以随时计算Packfiles,也可以将其推入。参见HTTP-Protocol。

对于克隆本地路径,最终的 /.git/是可选的,因为git可以穿越本地文件系统以找到它。

克隆对象没有差异
两个URL都在克隆相同的内容
唯一的[远程"原始"]章节.git/config设置的位置不同,但这是正常的:

[remote "origin"]
     url = ssh://localhost:29418/test/.git/

vs

[remote "origin"]
     url = ssh://localhost:29418/test.git

当您无需.git

克隆时
[remote "origin"]
     url = ssh://localhost:29418/test

这三个都在做同一件事

最新更新